5
何时在JPA中使用EntityManager.find()与EntityManager.getReference()
我遇到了一种情况(我认为这很奇怪,但可能很正常),在这种情况下,我使用EntityManager.getReference(LObj.getClass(),LObj.getId())获取数据库实体,然后将返回的对象传递给保留在另一个表中。 所以基本上流程是这样的: TFacade类{ createT(FObj,AObj){ T TObj =新的T(); TObj.setF(FObj); TObj.setA(AObj); ... EntityManager.persist(TObj); ... L LObj = A.getL(); FObj.setL(LObj); FFacade.editF(FObj); } } @ TransactionAttributeType.REQUIRES_NEW FFacade类{ editF(FObj){ L LObj = FObj.getL(); LObj = EntityManager.getReference(LObj.getClass(),LObj.getId()); ... EntityManager.merge(FObj); ... FLHFacade.create(FObj,LObj); } } @ TransactionAttributeType.REQUIRED FLHFacade类{ createFLH(FObj,LObj){ FLH FLHObj =新的FLH(); FLHObj.setF(FObj); FLHObj.setL(LObj); .... EntityManager.persist(FLHObj); ... } …
103
java
jakarta-ee
jpa
persistence