我有使用Spring MVC和JPA的Web应用程序(Hibernate是我的JPA提供者)。应用程序的结构是标准/普通的Web应用程序架构,如Controller>服务>存储库(您可以在JPA实体上执行常规CRUD操作)。
我有一个服务类说A
,它会调用其他两个服务B
和C
。 A
启动交易; B
和C
都在一个公共实体(例如Product
)和其他实体上运作。
我的要求是:如果B
对Product
实体进行了一些更改(在使用em.find
获取后),则C
在em.find
上调用Product
应该反映1}}(相同的 ID )B
更改,而不会对数据库进行B
次更改。如何实现?
如果我从em.merge
拨打B
,它会一直存在到数据库中。我想要的是A
只应该在启动事务时提交/回滚事务。