2013-03-04 28 views
0

例如,我有實體用戶,其中有許多消息。添加收集某個值後實體未更新

在這段代碼中,我得到了用戶並添加了它的集合新消息,然後我用簡單的方式刷新了更改:session.flush();

User activeUser = userDao.findById(userId); 
       Set<Message> messages = activeUser.getMessages(); 
       messages.add(chatroomModel.getMessage()); 
       session.flush(); 

後來我想通過一些標準,讓所有的信息和每封郵件都有它的所有者(用戶),但對於最後插入的消息目前沒有用戶。

我希望注意到沒有提交完成,並且所有邏輯都發生在同一個事務中。 我正在學習hibernate並嘗試構建一些示例項目,因此不會使用spring和其他「酷」東西。你能幫我一個小費 - 我做錯了什麼。 謝謝。

回答

2

消息是這裏關係的所有者(它擁有數據庫表中的用戶標識)。 ORM並不神奇,而且仍然受到關係模型的約束,您必須在插入消息前指定用戶,實際上只需添加

Message m = chatroomModel.getMessage(); 
m.setUser(activeUser); 
messages.add(m)