use*_*944 21 hibernate criteria hibernate-criteria
标准API中setResultTransformer方法的用途是什么?有人可以用一个简单的例子来解释这个吗 我读了javadocs,但我无法清楚地理解它们.
问候,
car*_*tax 14
不使用setProjections()的Criteria查询的默认ResultTransformer将是ROOT_ENTITY.
如果我们在与Department的ManyToMany关系中有Student,则查询可能如下所示...
Session session = (Session) getEntityManager().getDelegate();
Criteria crit = session.createCriteria(Student.class)
.createAlias('departments', 'department');
Run Code Online (Sandbox Code Playgroud)
此查询将返回重复项.但是设定ResultTransformer为......
crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
Run Code Online (Sandbox Code Playgroud)
现在,当Hibernate对结果进行编组时,结果将是截然不同的.(或者我是指unmarshalls?)
如果您不希望Hibernate将查询作为a返回,List<Student>而是希望以List<Object[]>当时的方式处理结果
crit.setResultTransformer(CriteriaSpecification.PROJECTION)
Run Code Online (Sandbox Code Playgroud)
简单地说:当您执行Criteria时:您希望结果集成为特定对象,您可以使用它:例如:
.setResultTransformer(Transformers.aliasToBean(Employee.class));
Run Code Online (Sandbox Code Playgroud)
Employee 应该与ResultSet实体匹配 .
| 归档时间: |
|
| 查看次数: |
44313 次 |
| 最近记录: |