异常名称:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
1、no-session问题产生的原因是获取数据使用延迟加载数据的方式,当使用数据前关闭session的,再使用数据时,数据不会加载,进而报错
1、String hql = "from Customer" 语句正确 返回的是所有Customer对象
2、String hql="from Customer where custId=3" 语句正确查询为id=3的Customer对象
3、String hql ="select * from Customer" 语句错误,因为类中没有*对应的属性
4、String hql = "select custName from Customer" 语句正确 返回的结果是 custName String类型
5、String hql = "select custId,custName from Customer" 语句正确,返回的结果是数组,第一个元素为custID,第二个为custName
6、String hql = "select new Customer() from Customer" 语句错误
7、String hql = "select new Customer(custId) from Customer" 错误,必须要有对应的构造函数
8、String hql = " from Customer as c order by c.custId";正确,返回的是Customer对象并排序
9、String hql = "from java.lang.Object" 多态查询,查询所有的持久化对象
10、String hql = " from Customer c inner join c.linkmans" 语句正确、显示外连接
11、String hql = "from Customer c,LinkMan l where c.custId=L.customer.custId"语句正确、隐式外连接
12、String hql = " from Customer c inner join LinkMan l on c.custId=L.customer.custId" 语句错误
进行内联接操作时,虽然查询了linkman,但并没有将linkman赋值到customer中,使用连接查询,返回的是数组,两个元素分别为对应的对象
13、配合fetch迫切 使用 String hql = " from Customer c inner join fetch c.linkmans"
将查询到的linkman封装到对应的customer中,返回的结果是customer对象
14、 String hql = " from Customer c left join fetch c.linkMans";使用左外连接进行查询的时候如果一个客户有多个联系人,这个客户就会
查询多次,使用distinct去重就可以了 String hql = "select distinct c from Customer c left join fetch c.linkMans ";
1.no-session 问题1.1 no-session问题的产生异常名称:org.hibernate.LazyInitializationException: could not initialize proxy - no Session1、no-session问题产生的原因是获取数据使用延迟加载数据的方式,当使用数据前关闭session的,再使用数据时,数据不会加载,进而报错1.2 解决n