我有一个使用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
。