Hibernate 的检索方式有5种。
- 导航对象图检索方式
Customer c = session.get(Customer.class,2);
c.getOrders().size();
可以根据已经加载的对象导航到其他对象,如一对多的查询。
- oid检索方式
按照对象的oid来检索对象,Hibernate在执行get/load时要通过oid查询。
session.get(Customer.class,3);
session.load(Order.class,1);
HQL
- 得到Session
- 编写HQL语句(结构为select/update/delete from where group by having order by asc/desc)
- 通过session.createQuery(hql)创建一个Query对象
- 为Query对象设置参数
- 执行list查询时,返回一个list,执行uniqueResult时返回一个结果
QBC
- 通过Session得到一个Criteria对象
session.createCriteria();
- 设定条件,Criterion实例。
Criterition criterition=Restrictions.like("name","T%");criteria.add(criterition);
- 调用list进行查询
- 通过Session得到一个Criteria对象
- 本地SQL
SQLQuery sqlQuery= session.createSQLQuery("select * ]from t_customer")
采用HQL或QBC检索方式时,Hibernate生成标准的SQL查询语句,适用于所有的数据库平台,因此这两种检索方式都是跨平台的。