С Hibernate Session
API вы можете сделать это, объединив методы addEntity()
и addScalar()
:
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
:
@SqlResultSetMappings(
@SqlResultSetMapping(name = "projectWithCount"
entities = @EntityResult(entityClass = Project.class),
columns = @ColumnResult(name = "c")))
...
Query q = s.createSQLQuery(
"...", "projectWithCount")