hibernate用get方法怎么也懒加载异常呢?情况是这样
device类中有个product类 他们的关系是多对一 ,many to one 这里没有显示的写上lazy属性(默认是proxy吧?),不过many-to-one这里确定要懒加载的而现在我想通过get方法得到device对象,在得到product,hibernate为什么会报懒加载异常呢?不是说get不会看懒加载么?
device类中有个product类 他们的关系是多对一 ,many to one 这里没有显示的写上lazy属性(默认是proxy吧?),不过many-to-one这里确定要懒加载的而现在我想通过get方法得到device对象,在得到product,hibernate为什么会报懒加载异常呢?不是说get不会看懒加载么?
lazy 的问题
如果你想把product对象查出来,可以改映射文件也就是楼上所有的lazy=true,但是不建议这样做。你可以在session关闭之前去初始化product这个代理(Hibernate.initialize(device.getProduct())),或者用hql语句查询。
我试过getdevice后马上(sesion没关闭)去调用getproduct.getName()方法,可我奇怪的是还会抛异常,hql是没问题它会把product给拿出来, form device where device.id=?,但我总不能一遇到这种情况就写hql吧,况且该类中已有个getDeviceByID这个方法,我在写个hql的似乎不太好