java - Hibernate,EHCache,读写缓存,将项目添加到列表

标签 java hibernate orm jpa seam

我有一个实体,里面有一个集合。该集合是一个 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/

相关文章:

Hibernate 中的 java.util.Date 映射

java - 使用 JPA 和 Hibernate 时 @Size、@Length 和 @Column(length=value) 的区别

java - 如何使用 JPA 2 连接到多个数据源?

java - Volley POST 在请求成功时抛出错误

java - Grails Spring 安全认证提供程序和自定义过滤器

java - Hibernate:一张表,多个实体/持久类,合法吗?

hibernate - select * where id = :id and entity manager find() 的区别

python - 简单的 Peewee ORM Python Bug - 保存钩子(Hook)

java - Android中使用KSOAP访问Webservice不起作用

java - 为什么重新排列导入会导致编译失败?