添加一些值后,实体不会更新

时间:2013-03-04 16:58:18

标签: hibernate java-ee

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

Message是此处关系的所有者(它拥有数据库表中的用户ID)。 ORM不是神奇的,仍然受关系模型的约束,你必须在插入之前为消息指定用户,实际上只需添加

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