0

例如,我有实体用户,它有很多消息。

在这段代码中,我获取用户并将新消息添加到它的集合中,然后我使用简单的方法刷新更改:session.flush();

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

后来我希望通过某些标准获取所有消息,并且每条消息都有它的所有者(用户),但是最后插入的消息没有用户。

我希望注意到没有完成任何提交,所有逻辑都发生在同一个事务中。我正在学习休眠并尝试构建一些示例项目,因此不使用 spring 和其他“酷”的东西。你能帮我一个小费吗 - 我做错了什么。谢谢。

4

1 回答 1

2

Message 是这里关系的所有者(它拥有数据库表中的用户 ID)。ORM 还不是魔法,仍然受到关系模型的限制,你必须在插入之前为消息指定用户,实际上只需添加

Message m = chatroomModel.getMessage();
m.setUser(activeUser);
messages.add(m)
于 2013-03-04T17:23:10.840 回答