获取集合数据的四种方式:
1:Hibernate.initialize(user.getOrder());
2:user.getOrder().size();
3:左右迫切连接
4:高级过滤器
条件查询语句(Criteria Queries):利用对象进行对象查询。
主要的接口有:Criteria、Criterion和expression_r和Restrictions类组成。能够支持在运行时动态生成SQL语句。
条件查询步骤:
1:通过seesion的CreateCriteria()方法,创建一个Criteria对象
2:设置查询对象,name指对象的属性
3:把查询条件添加到Criteria对象中
4:执行list()查询返回结果。
条件查询通过三个类完成:
Criteria:代表一次查询.
Criterion:代表一个查询条件.
Restrictions:产生查询条件的工具类.
本地sql查询:使用手写的SQL来完成所有的create\update\delete操作也包括存储过程
本地sql步骤:
1:通过session创建一个SqlQuery对象。
2:编写sql语句
3:以SQL语句作为参数,调用Session的createSQLQuery方法创建查询对象
4:如果SQL语句包含参数,则调用Query的setXX方法为参数赋值
5:调用SQLQuery对象的addEntity或addScalar方法,将选出的结果与实体或标量值关联.
如:HQL的sql
Java代码
String sql = "select c.c_id as {c.id},c.c_name as {c.name} from CUSTOMER c where c.id = 1";
注意:如果使用*,表的别名和类的别名要一致
Java代码
String sql1 = "select {c.*} from CUSTOMER c where c.c_id=2 ";
如:条件查询的sql
Java代码
SQLQuery query = session.createSQLQuery(sql);
query.addEntiy("c",Customer.class);
多态查询:
多态查询是指可以查询到当前类及所有子类的实例,HQL和条件查询都支持多态查询。
如:hql语句查询出所有的持久化对象
Java代码