框架是 hibernate 3 , 还觉得出现了什么bug , 就说新增以后, 查询的时候,不能关联到 对应的对象。数据库
好比 有一个User 对象,关联的表是 user 表。框架
在User 对象里面 有一个 订单对象:fetch
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_id", referencedColumnName = "id", updatable = false, nullable = true, insertable = false)
private ProcessOrder order;hibernate
通常来讲 若是查询到了 user 对象就能够直接调用 user.getOrder() 来获取 订单的对应数据库数据了。线程
可是 若是对象
service.save(user); 事务
user.getOrder() ;// 订单数据就不会获取到。get
是的就是失效了。table
可是 当你 在其余页面查询user.getOrder 的时候,是能够 级联查询到 order数据的。service
缘由
这个是 hibernate的 特点了,插入的时候,立刻查询就会 级联获取其余对象是 不成功的, 返回都是 NULL 的。
无论是不是在同一个事务中都是这样的, 只要在 同一个线程里面都是 这样的。
好比 在 一个
controller 里面
int userID =service.save(user);
User user= service.getUser(userId);
user.getOrder();// 也是同样获取不到 订单数据的
因此只能 主动 查询一次数据了,反正 使用user 对象 关联order 数据是不行了。
这个不知道是 hibernate的坑仍是说故意这样的
除非是 在 保存的时候 set 关联对象进去 好比:
user.setOrder(order);// 这样就能够经过
service.save(user);
user.getOrder() ;// 订单数据就不会获取到。