yay*_*aya 25 java hibernate hql
如果我的查询包含一个类,例如:
query = session.createQuery("select u from User as u");
queryResult = query.list();
Run Code Online (Sandbox Code Playgroud)
然后我迭代它,哪里queryResult是User类的对象.
那么如何从包含多个类的查询中获取结果呢?例如:
select u, g from User as u, Group as g where u.groupId = g.groupId and g.groupId = 1
Run Code Online (Sandbox Code Playgroud)
小智 29
for (Object[] result : query.list()) {
User user = (User) result[0];
Group group = (Group) result[1];
}
Run Code Online (Sandbox Code Playgroud)
你可以使用Tuples来做到这一点我相信,但更重要的是,如果你的组和用户是相关的,那么查询似乎建议User应该有一个Group字段(不要在你的User类中使用groupId,hibernate应该为你排序).如果是这种情况,你可以简单地使用它来查询select u from User u join fetch u.group g where g.groupId = :id(然后使用设置id query.setParameter(1, id);.
该fetch查询中的关键字使其成为一个急切的加载,因此两个对象都将返回到hibernate,这将返回User对象.使用user.getGroup()访问Group对象.
当您选择一个单一的实体,query.list()将返回List的Object包含您的实体。
当您选择多个实体,query.list()将返回List的Object[]。数组的每个元素都代表一个单独的实体。
在此处阅读更多信息:http : //docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-select
| 归档时间: |
|
| 查看次数: |
42767 次 |
| 最近记录: |