在Hibernate Framework中,提供了三种查询数据的方式:1.Hibernate Query Language (HQL)2.Criteria query 3.Native SQL query。

本文首要介绍在Hibernate Framework中的三种查询数据的方法,下面就三种方法逐个举例,期望我们阅览后有很大的收益。

Hibernate Framework查询实例(hibernate关联查询)  Framework 第1张

1.HibernateQueryLanguage(HQL):它是ANSISQL的最小OODialect,例:

  1. session.createQuery("fromCategorycwherec.namelike'Laptop%'");
  2. entityManager.createQuery("selectcfromCategorycwherec.namelike'Laptop%'");

2.Criteriaquery:它是HQL查询的延伸,供给了一些Hibernate Framework高档查询功用,例:

  1. session.createCriteria(Category.class)
  2. .add(Restrictions.like("name","Laptop%"));
  3. 3.NativeSQLquery:
  4. session.createSQLQuery(
  5. "select{c.*}fromCATEGORY{c}whereNAMElike'Laptop%'"
  6. ).addEntity("c",Category.class);

3.NativeSQLquery:

  1. session.createSQLQuery(
  2. "select{c.*}fromCATEGORY{c}whereNAMElike'Laptop%'"
  3. ).addEntity("c",Category.class);

最近,我在项目中常常遇到Hibernate数据查询的使命,我对一些我遇到的较难的课题举例进行阐明:《表述SELECT》

  1. Criteriacrit=session.createCriteria(User.class)
  2. .setProjection(Projections.projectionList()
  3. .add(Projections.property("lastname"))
  4. .add(Projections.property("firstname"))
  5. .list();

《表述WHERE》

  1. Criteriacrit=session.createCriteria(User.class)
  2. .add(Restrictions.eq("email","foo@hibernate.org"))
  3. .uniqueResult();

《表述GROUP》

  1. Criteriacrit=session.createCriteria(User.class)
  2. .setProjection(Projections.projectionList()
  3. .add(Projections.groupProperty("lastname"))
  4. .add(Projections.groupProperty("firstname"))
  5. .list()

《表述ORDER》

  1. Criteriacrit=session.createCriteria(User.class)
  2. .addOrder(Order.asc("lastname"))
  3. .addOrder(Order.asc("firstname"))
  4. .list();

《取TOP5成果》:

  1. Criteriacrit=session.createCriteria(Cat.class);
  2. .setMaxResults(5)
  3. .list();

《分页》:

  1. Criteriacrit=session.createCriteria(Cat.class)
  2. .setFirstResult(1)
  3. .setMaxResults(50)
  4. .list();

《取查询成果》:假如运用select或group,有必要运用object[]来取得查询成果List值;
假如未运用select或group,有必要运用javaobject[]来取得查询成果List值;

《触及组合primarykey特点》:

  1. Criteriacrit=session.createCriteria(activitylog.class)
  2. .add(Restricts.eq(“comp_id.custId”,customerid0))
  3. .add(Restricts.ge(“createdTs”,starttime))
  4. .add(Restricts.le(“createdTs”,endtime))
  5. .list();

《ForeignKey联合查询》:

  1. session.createCriteria(Category.class)
  2. .add(Restrictions.like("name","Laptop%"));
  3. 3.NativeSQLquery:
  4. session.createSQLQuery(
  5. "select{c.*}fromCATEGORY{c}whereNAMElike'Laptop%'"
  6. ).addEntity("c",Category.class);
0

以上介绍Hibernate Framework。

【修改引荐】

  1. Hibernate的一些根本用法
  2. Hibernate XML格局剖析
  3. 怎么处理Struts Hibernate的整合问题
  4. Hibernate耐久层全面描绘
  5. Hibernate根底详解
转载请说明出处
知优网 » Hibernate Framework查询实例(hibernate关联查询)

发表评论

您需要后才能发表评论