日期:2014-05-18  浏览次数:20708 次

求助:hibernate查询返回实体类中的实体类对象值为nul
实体类A包含B对象[B也是实体类]

在dao层进行数据操作的时候,B对象的数据都读取成功并可以进行操作,单当返回给service层的时候,A类的一些String、int类型的数据还在,B对象里的值都却变成了null,为什么?
hibernate查询返回实体为null

------解决方案--------------------
hibernate的延迟加载机制导致的;
A对象会全部加载,B对象你使用的时候才加载;

在DAO里面session并未关闭,对某个A对象,取B对象是可以的;
传到Service层之后,再想直接取A对象中的未加载的B对象就不行了;
------解决方案--------------------
在DAO查询的时候取出来就好^_^
延迟加载最好是不要取消
------解决方案--------------------
比如说QBC查询的话,加句criteria.createAlias("B", "b");
比如说HQL查询的话,这样from A a inner join fetch a.B;