我有一个实体,里面有一个集合。该集合是一个 OneToMany 单向关系,存储谁查看了特定文件。我遇到的问题是,在我加载实体并尝试更新集合后,我没有收到任何错误,但集合永远不会更新:
实体:
@OneToMany(cascade = CascadeType.PERSIST)
@JoinTable
protected List<User> users;
文件服务小程序
@In
private EntityQuery<File> File_findById;
...
File file = File_findById(fileId);
file.getUsers().add(user);
session.update(file);
即使我调用了 session.update(file)
并且我在 hibernate 日志中看到了一些东西,但我在数据库中没有看到任何表明它已被保存的东西。
沃尔特
最佳答案
使用属性访问而不是字段访问,因为它启用了 Hibernate 的自动脏检查并改为使用@Cascade(CascadeType.SAVE_UPDATE)
@OneToMany
@JoinTable
@Cascade(CascadeType.SAVE_UPDATE)
public List<User> getUsers() {
return this.users;
}
问候,
关于java - Hibernate,EHCache,读写缓存,将项目添加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439126/