从Hibernate Criteria查询创建未映射的对象

时间:2014-08-05 16:05:04

标签: java hibernate criteria hibernate-criteria

使用常规HQL我能够通过执行某些操作来使Hibernate返回未映射到数据库的对象的List

List<MyUnmappedObject> result = (List<MyUnmappedObject>) session
               .createQuery("select new MyUnmappedObject(obj1.field1, obj2.field1, obj2.field2) from MyFirstObject obj1 join obj1.obj2 obj2")
               .list();

现在我正在尝试做同样的事情,但是使用Criteria。我知道如何使用Projections获取List,但是使用这些结果是否有对新对象创建的内置支持?显然我知道我可以解析结果并手动创建新对象,但我试图整合所有内容。我目前正在使用以下内容,但不知道如何将其合并到直接对象创建中:

Criteria c = session.createCriteria(MyFirstObject.class, "obj1");
c.createAlias("obj1.obj2", "obj2");
c.setProjection(Projections.distinct(Projections.projectionList()
    .add(Projections.property("obj1.field1")
    .add(Projections.property("obj2.field1")
    .add(Projections.property("obj2.field2")));
List<Object[]> result = c.list();

任何帮助都将不胜感激。

0 个答案:

没有答案