这样一段代码:他们是在同一个事务下的
public class ObjectA{
private String id;
private ObjectB objectB;
...get/set方法;
}
public void functionA(){
ObjectA a = new ObjectA();
dao.add(a);
functionB(a.getId);
dao.commit();
}
public void functionB(String id){
ObjectA pa = dao.get(ObjectA, id); //根据id查询对象
ObjectB b = pa.getObjectB(); //这里获取的值为空,但数据库里面是有数据的
}
public void functionA(){
ObjectA a = new ObjectA();
a.setObjectB(dao.get(ObjectB.class, id)); //将ObjectB查询出来,set到ObjectA中
dao.add(a);
functionB(a.getId);
dao.commit();
}
public void functionB(String id){
ObjectA pa = dao.get(ObjectA, id); //根据id查询对象
ObjectB b = pa.getObjectB(); //这样就没问题了
}
ObjectA和ObjectB是多对一的关系,配置如下
<many-to-one name="objectB"
class="com.*.*.ObjectB" insert="false" update="false">
<column name="objectB_id" length="32" />
</many-to-one>
请大神解释下这是为什么?谢谢!!!