这个问题其实相当简单,但是,我在之前开发当中就不知道这样的用法。今天google到这种用法,实在是爽,也为以前没有好好search而懊恼。
问题:需要通过多表联合查询,并且返回单表所对应的实体。也就是说:希望返回包含实体的列表,而不是包含对象数组的列表。
解决方法:
之前查参考手册的时候,并没有查到这种用法,只知道说:如果查询一个实体的话,那就是
这样可以返回实体。
但是,如果你要查询属性的话,那么
这样返回的就是对象数组。
但是,没有提供上面的方式。当时查hibernate的参考手册也没有看到。今天写DAO代码,反复遇到这样的情况,总是退回去用Criteria,实在是不爽。因此,再次google,得到了正确用法。
其实,对于这种需求是肯定会有的,当时怎么没有好好google一把呢?
参考链接: http://www.devarticles.com/c/a/Java/Hibernate-HQL-in-Depth/1/
问题:需要通过多表联合查询,并且返回单表所对应的实体。也就是说:希望返回包含实体的列表,而不是包含对象数组的列表。
解决方法:
hql 代码
- select b from BsEmployeeLog as b, PlanChange as pc where b.logId = pc.logId
- and pc.projectId = 0
之前查参考手册的时候,并没有查到这种用法,只知道说:如果查询一个实体的话,那就是
hql 代码
- from BsEmployee where ...
但是,如果你要查询属性的话,那么
hql 代码
- select b.id from BsEmployee as b where ...
但是,没有提供上面的方式。当时查hibernate的参考手册也没有看到。今天写DAO代码,反复遇到这样的情况,总是退回去用Criteria,实在是不爽。因此,再次google,得到了正确用法。
其实,对于这种需求是肯定会有的,当时怎么没有好好google一把呢?
参考链接: http://www.devarticles.com/c/a/Java/Hibernate-HQL-in-Depth/1/