【发布时间】:2013-04-28 12:52:09
【问题描述】:
我有一个使用 JPA 的基本 Java 项目设置。我有正确注释的类,可以毫无问题地将数据插入到我的 PostgreSQL 数据库中。
我的问题……我可能会发现我需要在这里添加更多细节……
我是在调用“em.remove(myObject)”,其中“em”是一个 EntityManager。我可以在调试时看到对象的更改,但在应用程序完成后,我的更改不会反映在数据库中。
.remove() 调用会更新数据库还是我还需要添加 .flush() 调用?我试过用谷歌搜索这个,一定是遗漏了一些东西。
谢谢!
【问题讨论】:
-
您是否在删除之前在同一事务中从数据库中读取对象?
-
是的,它是同一事务的一部分。
-
如果它不是一个分离的实例,那么删除调用应该可以工作。如果它已分离,您需要先使用
Object managed = em.merge(myObject);对其进行管理,然后在managed上调用 remove。 -
谢谢克拉夫。我会试一试。
-
如果您在交易中执行此操作,您是否在最后提交交易?
标签: java hibernate jpa persistence entity