Hibernate 在向集合添加某些值后,实体不会更新
例如,我有一个实体用户,它有许多消息 在这段代码中,我获取user并将新消息添加到它的集合中,然后使用simple:session.flush()刷新更改强>Hibernate 在向集合添加某些值后,实体不会更新,hibernate,jakarta-ee,Hibernate,Jakarta Ee,例如,我有一个实体用户,它有许多消息 在这段代码中,我获取user并将新消息添加到它的集合中,然后使用simple:session.flush()刷新更改 User activeUser = userDao.findById(userId); Set<Message> messages = activeUser.getMessages(); messages.add(chatroomModel.getMessage())
User activeUser = userDao.findById(userId);
Set<Message> messages = activeUser.getMessages();
messages.add(chatroomModel.getMessage());
session.flush();
User-activeUser=userDao.findById(userId);
设置messages=activeUser.getMessages();
messages.add(chatroomModel.getMessage());
session.flush();
稍后,我希望根据某些条件获取所有消息,并且每条消息都有其所有者(用户),但最后插入的消息没有用户
我希望注意到,没有进行提交,所有逻辑都发生在同一事务中。
我正在学习hibernate,并试图构建一些示例项目,所以不使用spring和其他“酷”的东西。你能帮我提个建议吗?我做错了什么。
谢谢。消息是此处关系的所有者(它拥有数据库表中的用户id)。ORM还没有变魔术,并且仍然由关系模型来构造,在插入消息之前,您必须指定消息的用户,事实上,只需添加
Message m = chatroomModel.getMessage();
m.setUser(activeUser);
messages.add(m)