框架是 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() ;// 訂單數據就不會獲取到。