在Action调用A对象的时候,B对象会变回null,现在我想在Action中使用A对象里的B的其他属性,在DAO如何取?new一个B对象给A吗?[不取消延迟加载] A a=new A(); B b= new B(); 在DAO查询出A对象后,怎么赋值b给a,让a.getB()不为null? 直接b=a.getB()然后再a.setB(b)?还是说无法直接在DAO层实现,只能在service层的时候增加逻辑:新建a和b对象,分别访问数据库,然后赋值a.setB(b),再返回a.....
比如说QBC查询的话,加句criteria.createAlias("B", "b"); 比如说HQL查询的话,这样from A a inner join fetch a.B;
A对象会全部加载,B对象你使用的时候才加载;在DAO里面session并未关闭,对某个A对象,取B对象是可以的;
传到Service层之后,再想直接取A对象中的未加载的B对象就不行了;
恩,就是这个问题!
如果我想要在Service层也使用B对象,应该在哪(hbm.xml/java)设置?(怎么取消懒加载及动态选择是否进行懒加载?)
延迟加载最好是不要取消
在Action调用A对象的时候,B对象会变回null,现在我想在Action中使用A对象里的B的其他属性,在DAO如何取?new一个B对象给A吗?[不取消延迟加载]
A a=new A();
B b= new B();
在DAO查询出A对象后,怎么赋值b给a,让a.getB()不为null?
直接b=a.getB()然后再a.setB(b)?还是说无法直接在DAO层实现,只能在service层的时候增加逻辑:新建a和b对象,分别访问数据库,然后赋值a.setB(b),再返回a.....
比如说HQL查询的话,这样from A a inner join fetch a.B;