在Hibernate Framework中,提供了三种查询数据的方式:1.Hibernate Query Language (HQL)2.Criteria query 3.Native SQL query。
本文首要介绍在Hibernate Framework中的三种查询数据的方法,下面就三种方法逐个举例,期望我们阅览后有很大的收益。
1.HibernateQueryLanguage(HQL):它是ANSISQL的最小OODialect,例:
- session.createQuery("fromCategorycwherec.namelike'Laptop%'");
- entityManager.createQuery("selectcfromCategorycwherec.namelike'Laptop%'");
2.Criteriaquery:它是HQL查询的延伸,供给了一些Hibernate Framework高档查询功用,例:
- session.createCriteria(Category.class)
- .add(Restrictions.like("name","Laptop%"));
- 3.NativeSQLquery:
- session.createSQLQuery(
- "select{c.*}fromCATEGORY{c}whereNAMElike'Laptop%'"
- ).addEntity("c",Category.class);
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联合查询》:
0
- session.createCriteria(Category.class)
- .add(Restrictions.like("name","Laptop%"));
- 3.NativeSQLquery:
- session.createSQLQuery(
- "select{c.*}fromCATEGORY{c}whereNAMElike'Laptop%'"
- ).addEntity("c",Category.class);
以上介绍Hibernate Framework。
【修改引荐】
- Hibernate的一些根本用法
- Hibernate XML格局剖析
- 怎么处理Struts Hibernate的整合问题
- Hibernate耐久层全面描绘
- Hibernate根底详解