hibernate 新增数据以后,不能级联查询到关联的数据

框架是 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() ;// 订单数据就不会获取到。

相关文章
相关标签/搜索