【问题标题】:Behavior of EntityManager when persisting Entities with/without GeneratedValue ids that are detachedEntityManager 的行为在持久化带有/不带有已分离的 GeneratedValue id 的实体时
【发布时间】:2015-02-10 20:18:36
【问题描述】:

对于以下不同情况,我希望有人回答 javax.persistence.EntityManager.persist() 的行为:

(请,如果其中一些案例减少为一个相同的案例,也请这么说;如果我隐含地减少为一个案例的某些案例(即:案例 c)由于行为不同而应该分开,请也这样说)

我坚持的对象:

a) 已分离并且已经设置了 @GeneratedValue @Id 字段,并且持久性上下文/数据库中存在具有相同 id 的实体。

b) 已分离并且已经设置了 @GeneratedValue @Id 字段,但持久性上下文/数据库中不存在具有相同 id 的实体。

c) 已分离,但其@GeneratedValue @Id 字段尚未设置。

d) 已分离,但其主键不是自动生成的,而是已设置。

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    我已经找到了所有案例的答案:

    a) 它将抛出 EntityExistsException。

    b) 它将忽略设置的值,并在实体刷新到数据库时设置自己生成的值。

    c) 与 b 相同。

    d) 只有当 PersistenceContext 中没有对象具有相同的主键时,它才会持续存在,否则,它将像 a 中一样抛出 EntityExistsException。

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2013-06-03
      相关资源
      最近更新 更多