当有一个持久对象成为一个分离的对象时,有人可以帮我理解一个例子吗?
答案 0 :(得分:3)
在以下情况下会脱离:
答案 1 :(得分:2)
取决于您正在使用的持久性上下文(事务或扩展)。有关说明,请参阅this link。基本上按照其他答案除了在使用事务PersistenceContext时提交事务时答案错过了分离
答案 2 :(得分:1)
我认为对实体分离的最佳理解是关注JPA规范对实体生命周期的看法。
分离的实体实例是具有持久性标识的实例,该实体不与(或不再)与持久性上下文相关联。
这意味着即使是新创建的实体,也可以将其视为已分离。假设我们的实体A
的ID标记为@Id @GeneratedValue
。因此,JPA提供商基本上会负责分配ID。但是,如果您明确指定A
的ID(例如a.setId(1)
),然后将其传递给persist()
,您将获得例外。