org.hibernate.Query#setResultTransformer ( )源码实例Demo

下面列出了org.hibernate.Query#setResultTransformer ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: oim-fx   文件: BaseAbstractDAO.java
@SuppressWarnings("unchecked")
public <T> T queryUniqueResult(String queryString, QueryWrapper queryWrapper, Class<T> resultClass, List<ResultType> returnTypeList) {
	Session session = sessionBox.getCurrentSession();
	Query query = createSQLQuery(session, queryString);
	setParameter(query, queryWrapper);
	setScalar(query, returnTypeList);

	if (resultClass != null && !this.isPrimitive(resultClass) && !this.isString(resultClass)) {
		if (null == returnTypeList || returnTypeList.isEmpty()) {
			query.setResultTransformer(new ResultToBean(resultClass));
		} else {
			query.setResultTransformer(Transformers.aliasToBean(resultClass));
		}
	}
	if (null == resultClass) {
		query.setResultTransformer(new ResultToBean(resultClass));
	}
	Object value = query.uniqueResult();
	if (value instanceof BigInteger) {
		if (Long.class == resultClass) {
			value = ((BigInteger) value).longValue();
		}
	}
	return (T) value;
}
 
源代码2 项目: wenku   文件: PagingHibernateJdbcDao.java
/**
 * 分页查询:查询结果集
 * @param sql 查询语句,参数用 ? 代替
 * @param args 查询参数
 * @param page 分页条件
 * @param clazz 返回domain实体的class
 * @return 分页实体
 */
@SuppressWarnings("unchecked")
public <T> Page<T> findPage(String sql, Object[] args, Pageable page, Class<T> clazz) {
    long count = count(sql, args);
    List<T> results;
    if (count == 0) {
        results = null;
    } else {
        Query query = createSQLQuery(sql);
        query = setParameters(query, args);
        query = setPageable(query, page);
        query.setResultTransformer(new EntityResultTransformer(clazz));
        results = query.list();
    }
    return wrapResult(results, page, count);
}
 
源代码3 项目: wenku   文件: PagingHibernateJdbcDao.java
/**
 * 分页查询:查询结果集
 * @param sql 查询语句,参数用 ? 代替
 * @param args 查询参数
 * @param page 分页条件
 * @return 分页实体
 */
@SuppressWarnings("unchecked")
public Page<Map<String, Object>> findPage(String sql, Object[] args, Pageable page) {
    long count = count(sql, args);
    List<Map<String, Object>> results;
    if (count == 0) {
        results = null;
    } else {
        Query query = createSQLQuery(sql);
        query = setPageable(query, page);
        query = setParameters(query, args);
        query.setResultTransformer(new MapResultTransformer());
        results = query.list();
    }
    return wrapResult(results, page, count);
}
 
源代码4 项目: sakai   文件: ProfileDaoImpl.java
/**
	 * {@inheritDoc}
	 */
@Override
public List<UserProfile> getUserProfiles(final int start, final int count) {
	
	//get fields directly from the sakaiperson table and use Transformers.aliasToBean to transform into UserProfile pojo
	//the idea is we *dont* want a SakaiPerson object
	final HibernateCallback<List<UserProfile>> hcb = session -> {
           final Query q = session.getNamedQuery(QUERY_GET_SAKAI_PERSON);
           //see scalars in the hbm
           q.setFirstResult(start);
           q.setMaxResults(count);
           q.setResultTransformer(Transformers.aliasToBean(UserProfile.class));
           q.setCacheMode(CacheMode.GET);
           return q.list();
       };
  	
  	return getHibernateTemplate().execute(hcb);
}
 
源代码5 项目: sakai   文件: ProfileDaoImpl.java
/**
	 * {@inheritDoc}
	 */
@Override
public List<UserProfile> getUserProfiles(final int start, final int count) {
	
	//get fields directly from the sakaiperson table and use Transformers.aliasToBean to transform into UserProfile pojo
	//the idea is we *dont* want a SakaiPerson object
	final HibernateCallback<List<UserProfile>> hcb = session -> {
           final Query q = session.getNamedQuery(QUERY_GET_SAKAI_PERSON);
           //see scalars in the hbm
           q.setFirstResult(start);
           q.setMaxResults(count);
           q.setResultTransformer(Transformers.aliasToBean(UserProfile.class));
           q.setCacheMode(CacheMode.GET);
           return q.list();
       };
  	
  	return getHibernateTemplate().execute(hcb);
}
 
源代码6 项目: oim-fx   文件: BaseAbstractDAO.java
@SuppressWarnings("unchecked")
public <T> List<T> queryList(String queryString, QueryWrapper queryWrapper, Class<T> resultClass, List<ResultType> returnTypeList) {

	Session session = sessionBox.getCurrentSession();
	List<T> list = null;

	Query query = createSQLQuery(session, queryString);
	setParameter(query, queryWrapper);
	if (null != returnTypeList) {
		setScalar(query, returnTypeList);
	}
	if (resultClass != null && !this.isPrimitive(resultClass) && !this.isString(resultClass)) {
		if (null == returnTypeList || returnTypeList.isEmpty()) {
			query.setResultTransformer(new ResultToBean(resultClass));
		} else {
			query.setResultTransformer(Transformers.aliasToBean(resultClass));
		}
	}

	if (null == resultClass) {
		query.setResultTransformer(new ResultToBean(resultClass));
	}

	list = query.list();
	if (null == list) {
		list = new ArrayList<>();
	}
	return list;
}
 
源代码7 项目: oim-fx   文件: BaseAbstractDAO.java
@SuppressWarnings("unchecked")
public <T> List<T> queryPageList(String queryString, QueryWrapper queryWrapper, Class<T> resultClass, List<ResultType> returnTypeList) {
	Session session = sessionBox.getCurrentSession();
	List<T> list = null;
	String queryCountSQL = wrapTotalSql(queryString);
	Query queryCount = createSQLQuery(session, queryCountSQL);
	setParameter(queryCount, queryWrapper);
	QueryPage page = queryWrapper.getPage();
	if (page == null) {
		page = new DefaultPage();
	}
	int totalCount = getCount(queryCount);
	if (0 < totalCount) {
		page.setTotalCount(totalCount);
		Query query = createSQLQuery(session, queryString);
		query.setFirstResult(page.getStartResult()); // 从第0条开始
		query.setMaxResults(page.getPageSize()); // 取出10条
		setParameter(query, queryWrapper);
		if (null != returnTypeList) {
			setScalar(query, returnTypeList);
		}
		if (resultClass != null && !this.isPrimitive(resultClass) && !this.isString(resultClass)) {
			if (null == returnTypeList || returnTypeList.isEmpty()) {
				query.setResultTransformer(new ResultToBean(resultClass));
			} else {
				query.setResultTransformer(Transformers.aliasToBean(resultClass));
			}
		}
		if (null == resultClass) {
			query.setResultTransformer(new ResultToBean(resultClass));
		}
		list = query.list();
	}
	if (null == list) {
		list = new ArrayList<T>();
	}
	page.setResultList(list);
	return list;
}
 
源代码8 项目: spring-data-jpa-extra   文件: QueryBuilder.java
public static <C> Query transform(Query query, Class<C> clazz) {
    ResultTransformer transformer;
    if (Map.class.isAssignableFrom(clazz)) {
        transformer = Transformers.ALIAS_TO_ENTITY_MAP;
    } else if (Number.class.isAssignableFrom(clazz) || clazz.isPrimitive() || String.class.isAssignableFrom(clazz) ||
            Date.class.isAssignableFrom(clazz)) {
        transformer = transformerCache.computeIfAbsent(clazz, SmartTransformer::new);
    } else {
        transformer = transformerCache.computeIfAbsent(clazz, BeanTransformerAdapter::new);
    }
    return query.setResultTransformer(transformer);
}
 
源代码9 项目: wenku   文件: PagingHibernateJdbcDao.java
/**
 * 分页查询:查询结果集
 * @param sql 查询语句
 * @param page 分页条件
 * @param clazz 返回domain实体的class
 * @return 分页实体
 */
@SuppressWarnings("unchecked")
public <T> Page<T> findPage(String sql, Pageable page, Class<T> clazz) {
    long count = count(sql);
    List<T> results;
    if (count == 0) {
        results = null;
    } else {
        Query query = createSQLQuery(sql);
        query = setPageable(query, page);
        query.setResultTransformer(new EntityResultTransformer(clazz));
        results = query.list();
    }
    return wrapResult(results, page, count);
}
 
源代码10 项目: wenku   文件: PagingHibernateJdbcDao.java
/**
 * 分页查询:查询结果集
 * @param sql 查询语句
 * @param page 分页条件
 * @return 分页实体
 */
@SuppressWarnings("unchecked")
public Page<Map<String, Object>> findPage(String sql, Pageable page) {
    long count = count(sql);
    List<Map<String, Object>> results;
    if (count == 0) {
        results = null;
    } else {
        Query query = createSQLQuery(sql);
        query = setPageable(query, page);
        query.setResultTransformer(new MapResultTransformer());
        results = query.list();
    }
    return wrapResult(results, page, count);
}
 
源代码11 项目: wenku   文件: PagingHibernateJdbcDao.java
/**
 * 查询集合
 * @param sql 查询语句,参数用 ? 代替
 * @param args 查询参数
 * @param clazz 返回domain实体的class
 * @return
 */
@SuppressWarnings("unchecked")
public <T> List<T> findList(String sql, Object[] args, Class<T> clazz) {
    List<T> results;
    Query query = createSQLQuery(sql);
    query = setParameters(query, args);
    query.setResultTransformer(new EntityResultTransformer(clazz));
    results = query.list();
    return results;
}
 
源代码12 项目: wenku   文件: PagingHibernateJdbcDao.java
/**
 * 查询集合
 * @param sql 查询语句,参数用 ? 代替
 * @param args 查询参数
 * @return
 */
@SuppressWarnings("unchecked")
public List<Map<String, Object>> findListMap(String sql, Object[] args) {
    List<Map<String, Object>> results;
    Query query = createSQLQuery(sql);
    query = setParameters(query, args);
    query.setResultTransformer(new MapResultTransformer());
    results = query.list();
    return results;
}
 
源代码13 项目: framework   文件: BaseHibernateDao.java
/**
 * Description: <br>
 * 
 * @author 王伟<br>
 * @taskId <br>
 * @param sql
 * @param <T> T
 * @return <br>
 */
public <T> List<T> queryBySql(final String sql) {

    Session session = getSession();
    session.flush();
    Query query = session.createSQLQuery(sql);

    if (getEntityClazz().equals(Map.class)) {
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    }
    else {
        query.setResultTransformer(new AutoResultTransformer(getEntityClazz()));
    }
    return query.list();
}
 
源代码14 项目: robe   文件: TransformerImpl.java
private void setResultTransformer(Query query){
    switch (this.getTransformType()) {
        case MAP:
            query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
            break;
        case DTO:
            query.setResultTransformer(new AliasToBeanResultTransformer(this.getTransformClass(), this.getMeta()));
            break;
    }

}
 
源代码15 项目: DWSurvey   文件: SimpleHibernateDao.java
@Override
public Query distinct(Query query) {
	query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
	return query;
}
 
源代码16 项目: base-framework   文件: BasicHibernateDao.java
/**
 * 为Query添加distinct transformer,讲查询出来的重复数据进行distinct处理
 * 
 * @param queryOrNamedQuery hql 或者Hibernate的NamedQuery
 * @param values 值
 * 
 * @return List
 */
public <X> List<X> distinct(String queryOrNamedQuery,Object... values) {
	Query query = createQuery(queryOrNamedQuery, values);
	query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
	
	return query.list();
}
 
源代码17 项目: base-framework   文件: BasicHibernateDao.java
/**
 * 为Query添加distinct transformer,讲查询出来的重复数据进行distinct处理
 * 
 * @param queryOrNamedQuery hql 或者Hibernate的NamedQuery
 * @param values 值
 * 
 * @return List
 */
public <X> List<X> distinct(String queryOrNamedQuery,Map<String, Object> values) {
	Query query = createQuery(queryOrNamedQuery, values);
	query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
	
	return query.list();
}
 
源代码18 项目: lemon   文件: HibernateUtils.java
/**
 * distinct.
 * 
 * @param query
 *            Query
 * @return Query
 */
public static Query distinct(Query query) {
    query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return query;
}