2011-02-10 155 views
0

我知道如何查询到IBatis中的resultClass映射。如何将查询映射到非实体类+实体类

如何将本机查询结果映射到在hibernate中是实体类和标量混合的对象?我如何设置参数?

请帮忙。

Query q = s.createSQLQuery(
    "select p.*, count(e.id) as c " + 
    "from Project p left join Employee e on p.id = e.project_id " + 
    "group by p.id") 
    .addEntity(Project.class).addScalar("c"); 

在JPA,你可以做到这一点与@SqlResultSetMapping

回答

2

使用Hibernate API Session,您可以通过comining addEntity()addScalar()方法去做

@SqlResultSetMappings(
    @SqlResultSetMapping(name = "projectWithCount" 
     entities = @EntityResult(entityClass = Project.class), 
     columns = @ColumnResult(name = "c"))) 

... 

Query q = s.createSQLQuery(
     "...", "projectWithCount") 
+0

我是新来@SqlResultSetMappings,所以你还可以告诉这个注解条目到哪个类中去?这个注解是否会进入一个不是实体类的类,并且有两个属性:1指向Project类,1指向int c; ? – 2014-12-05 07:32:16