EntityManager remove()调用没有更新数据库



我有一个使用JPA的基本Java项目设置。我有正确注释的类,可以将数据插入到我的PostgreSQL数据库中,没有任何麻烦。

我的问题…我可能会发现我需要在这里添加更多细节……

是我调用"em.remove(myObject)"其中'em'是一个EntityManager。在调试时,我可以看到对对象的更改,但在完成应用程序后,我的更改没有反映在数据库中。

调用。remove()会更新数据库吗?还是我还需要添加。flush()调用?我用谷歌搜索过了,一定是遗漏了什么。

谢谢!

我发现我还需要定义一个级联类型。

@ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "QUESTION_ID", nullable = false)
    private Question question; 

remove调用应该从数据库中删除实体。但是,根据您的缓存设置,这可能不会立即发生。如果移除会违反一些约束,那么当它尝试更新数据库时它会抛出异常,移除会失败。如果您确实需要保证它立即发生或失败,那么是的,您需要调用flush

最新更新