更改后未更新的Java JPA加载的OneToMany列表未更新

时间:2018-08-11 11:29:59

标签: java jpa one-to-many many-to-one

也许这是一个非常愚蠢的问题,但我只是找不到解决方案。我有:

@OneToMany(mappedBy = "project", fetch = FetchType.LAZY)
private List<Comment> comments;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "project_id")
private Project project;

启动应用程序时,我通过getter检索所有注释(已正确加载)。但是,当我删除/添加其他注释时,数据库会更新,但应用程序要等到重新运行。创建注释时,它会保留-位于数据库中-因此我不知道它是如何不更新的。尝试了各种级联类型,但是我认为这里没有必要。我还尝试了EAGER,但效果不佳。

当我在添加/删除后手动从数据库获取注释时,它起作用了,但这是非常肮脏的解决方案吗?

谢谢您的建议。

1 个答案:

答案 0 :(得分:1)

您必须获取您再次粘贴了一段代码的那个实体。已经获取的列表不会神奇地自我更新。

就像使用SQL一样-您已重新运行查询以查看更新。 ORM只是将SQL结果行映射到对象中。