例如,我有实体User,它有很多消息。
在这段代码中,我获得了用户并添加了它的集合新消息,然后我用简单的方法刷新更改: session.flush();
User activeUser = userDao.findById(userId);
Set<Message> messages = activeUser.getMessages();
messages.add(chatroomModel.getMessage());
session.flush();
稍后我希望按一些标准获取所有消息,并且每条消息都有它的所有者(用户),但是最后插入的消息没有用户。
我希望注意到没有提交,所有逻辑都在同一个事务中发生。 我正在学习hibernate并尝试构建一些示例项目,因此不使用spring和其他“酷”的东西。能帮我一个小费 - 我做错了什么。 感谢。
答案 0 :(得分:2)
Message是此处关系的所有者(它拥有数据库表中的用户ID)。 ORM不是神奇的,仍然受关系模型的约束,你必须在插入之前为消息指定用户,实际上只需添加
Message m = chatroomModel.getMessage();
m.setUser(activeUser);
messages.add(m)