2

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

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

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

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

谢谢!

4

2 回答 2

0

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

@ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "QUESTION_ID", nullable = false)
    private Question question; 
于 2013-05-17T02:21:08.400 回答
0

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

于 2013-05-24T00:33:33.427 回答