如何将分离或持久的实体更改为瞬态?

时间:2017-07-13 06:55:45

标签: hibernate hibernate-mapping

我想做的是:

  1. 从数据库中读取实体(使用hibernate)。
  2. 更改单个属性。
  3. 将其作为带有新Id(主键)的新条目再次插入。
  4. 我尝试使用null id插入分离的实体,但仍然抱怨重复的键值违反了唯一约束。

1 个答案:

答案 0 :(得分:0)

在从db读取实体后,您需要添加调用flush()evict()会话,并且只有在执行任何更改 - 更改字段并将id设置为null之后。由于您没有这样做,您实体仍然连接到会话上下文。还要检查重复键值是否违反了未连接另一个唯一键的唯一约束异常。