entityManager.getTransaction().rollback() detaches entities?

后端 未结 2 757
借酒劲吻你
借酒劲吻你 2021-01-21 06:38

I have the following piece of code:

EntityManagerFactory emf = Persistence.createEntityManagerFactory(\"test\")
EntityManager entityManager = emf.createEntityMan         


        
2条回答
  •  [愿得一人]
    2021-01-21 07:38

    From the JSR-000317 Persistence Specification for Eval 2.0 Eval:

    3.3.2 Transaction Rollback

    For both transaction-scoped and extended persistence contexts, transaction rollback causes all pre-existing managed instances and removed instances [31] to become detached. The instances’ state will be the state of the instances at the point at which the transaction was rolled back. Transaction rollback typically causes the persistence context to be in an inconsistent state at the point of rollback. In particular, the state of version attributes and generated state (e.g., generated primary keys) may be inconsistent. Instances that were formerly managed by the persistence context (including new instances that were made persistent in that transaction) may therefore not be reusable in the same manner as other detached objects—for example, they may fail when passed to the merge operation. [32]

提交回复
热议问题