我使用JPA进行基本的Java项目设置。我有正确注释的类,可以毫无困难地将数据插入到我的PostgreSQL数据库中。
我的问题......我可能会发现我需要在这里添加更多详细信息......
我是在调用“em.remove(myObject)”,其中'em'是一个EntityManager。我可以在调试时看到对象的更改,但在完成应用程序后,我的更改不会反映在数据库中。
对.remove()的调用会更新数据库还是我还需要添加.flush()调用?我试过谷歌搜索,一定是遗漏了什么。
谢谢!
答案 0 :(得分:0)
我发现我还需要定义一个级联类型。
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "QUESTION_ID", nullable = false)
private Question question;
答案 1 :(得分:0)
remove
调用应从数据库中删除实体。但是,根据您的缓存设置,这可能不会立即发生。如果你有一些可能被删除违反的约束,那么当它确实尝试更新数据库时,它将抛出异常并且删除将失败。如果您确实需要保证它会立即发生或失败,那么是的,您需要致电flush
。