EntityManager remove()调用不更新数据库

时间:2013-05-04 03:54:07

标签: java hibernate jpa persistence entity

我使用JPA进行基本的Java项目设置。我有正确注释的类,可以毫无困难地将数据插入到我的PostgreSQL数据库中。

我的问题......我可能会发现我需要在这里添加更多详细信息......

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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