时间:2021-05-02
大家知道,在HibernateFramework中,提供了三种查询数据的方式:1.HibernateQueryLanguage(HQL):它是ANSISQL的最小OODialect,例:session.createQuery("fromCategorycwherec.namelike'Laptop%'");entityManager.createQuery("selectcfromCategorycwherec.namelike'Laptop%'");2.Criteriaquery:它是HQL查询的延伸,提供了一些高级查询功能例:session.createCriteria(Category.class).add(Restrictions.like("name","Laptop%"));3.NativeSQLquery:session.createSQLQuery("select{c.*}fromCATEGORY{c}whereNAMElike'Laptop%'").addEntity("c",Category.class);
最近,我在项目中经常遇到Hibernate数据查询的任务,我对一些我遇到的较难的课题举例进行说明:
《表述SELECT》Criteriacrit=session.createCriteria(User.class).setProjection(Projections.projectionList().add(Projections.property("lastname")).add(Projections.property("firstname")).list();
《表述WHERE》Criteriacrit=session.createCriteria(User.class).add(Restrictions.eq("email","foo@hibernate.org")).uniqueResult();
《表述GROUP》Criteriacrit=session.createCriteria(User.class).setProjection(Projections.projectionList().add(Projections.groupProperty("lastname")).add(Projections.groupProperty("firstname")).list()
《表述ORDER》Criteriacrit=session.createCriteria(User.class).addOrder(Order.asc("lastname")).addOrder(Order.asc("firstname")).list();
《取TOP5结果》:Criteriacrit=session.createCriteria(Cat.class);.setMaxResults(5).list();
《分页》:Criteriacrit=session.createCriteria(Cat.class).setFirstResult(1).setMaxResults(50).list();
《取查询结果》:如果使用select或group,必须使用object[]来获得查询结果List值;如果未使用select或group,必须使用javaobject[]来获得查询结果List值;
《涉及组合primarykey属性》:Criteriacrit=session.createCriteria(activitylog.class).add(Restricts.eq(“comp_id.custId”,customerid0)).add(Restricts.ge(“createdTs”,starttime)).add(Restricts.le(“createdTs”,endtime)).list();《ForeignKey联合查询》:Criteriacrit=session.createCriteria(activitylog.class).createAlias(“taskCodeRf”,“tc”).setProjection(Projections.projectionList().add(Projections.property("UserId")).add(Projections.property("tc.taskdescription")).list();
《NativeQuery》:SQLQueryquery=session.createSQLQuery(“selectactivitylog_seq.nextvalassessidfromdual”);Query.addScalar(“sessid”,Hibernate.LONG);Longlong0=query.uniqueResult();
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性。HQL查询由Hibernate
浅谈hibernate中懒加载禁用操作懒加载的概念:懒加载就是hibernate中的延迟加载,在hibernate中的一对多,多对多关系中通过对象导航来查询对象
本文研究的主要是Hibernatehql查询的相关内容,具体如下。HQL介绍Hibernate语言查询(HibernateQueryLanguage,HQL)它
Hibernate中有HQL查询语法。但我们用得比较熟的还是数SQL语句,那么应该怎么来让Hibernate支持SQL呢?这个不用我们去考虑了,Hibernat
总结hibernate框架的常用检索方式1、hibernate框架的检索方式有以下几种:OID检索:根据唯一标识OID检索数据对象导航检索:根据某个对象导航查询