hibernate-4HQL讲述.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hibernate-4HQL讲述

查询id号为1,2,3的版块中的所有帖子Message Session session = sf.getCurrentSession(); session.beginTransaction(); String hql=“from Message m where m.topic.category.id in(1,2,3)”; Query q = session.createQuery(hql); ListMessage msgs = (ListMessage)q.list(); for(Message m : msgs) { System.out.println(m.getTitle()); } session.getTransaction().commit(); 显示连接关联实体 inner join 内连接,可简写为join left outer join 左外连接 right outer join 右外连接 full join 全连接 String hql=from Message msg inner join msg.topic t where t.id 6; session.beginTransaction(); Query query=session.createQuery(hql); ListObject[] result=(ListObject[])query.list(); for(Object[] objs:result){ Message msg=(Message)objs[0]; Topic topic=(Topic)objs[1]; System.out.print(msg.getTitle()+“ ”+msg.getId()); System.out.prinltn(topic.getTitle()+ +topic.getId()); } session.getTransaction().commit(); 该查询返回每条结果都包含一个Message实体 和与之关联的Topic实体,两个实体构成一个数组, 最后结果为ListObject[] String hql=select msg from Message msg left join msg.topic t where t.id 6; session.beginTransaction(); Query query=session.createQuery(hql); ListMessage msgList=(ListMessage)query.list(); for(Message msg:msgList) System.out.println(msg.getTitle()+ +msg.getId()); session.getTransaction().commit(); 将Message和Topic做左外连接,由于在select后明确 了要选择的数据是msg,所以结果只返回Message实体的数据 连接查询注意事项一:返回结果 隐式连接查询中,在HQL中,省略select,直接使用from开头 例如:from Message m where m.topic.id=3 对Message和Topic进行了连接查询,但是结果只包含Message的数据,结果为: ListMessage 连接查询注意事项一:返回结果 显示连接查询中,在HQL中,省略select,直接使用from开头 例如:from Message m join m.topic t where t.id=3; 对Message和Topic进行了连接查询,每条记录包含Message和Topic两个实体的数据,两个实体构成一个数组,多条记录构成集合,结果为: ListObject[ ] 连接查询注意事项二: Hibernate3.2.3以上的版本 隐式连接中,进行关联的属性不能是集合 from Person p where p.myEvents.title=‘meeting’; 进行关联的myEvents属性,不能是集合。 如果要对集合属性进行关联,要使用显示连接查询 from Person p inner join p.myEvents e where e.title=‘meeting’; 连接查询注意事项二: from Person p inner join p.myEvents e where e.title=‘meeting’; 显示连接,默认会返回Person实体数据,myEvents对应实体的数据; 如果只想要Person实体的数据,可以使用select关键字 select p from Person p in

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档