我试图通过JPA hibernate从ms sql表读取列的值,并在对每个值进行一些操作后将它们存储到同一个表的另一列。下面的代码从表Kennzahl中读取列kNFormelZPS,但随后在表的乞讨处插入一条id为0的新记录,并将单词new写入该单元格!然后它抛出一个异常,说主键不能重复。我猜它会尝试生成Id为0的新记录。
println
答案 0 :(得分:0)
主要问题是没有使用合并以避免创建新实体。
private void convert() {
Kennzahl kn = new Kennzahl();
em = factory.createEntityManager();
for (Kennzahl qidbKennzahl : aqidbKennzahlen) {
qidbKennzahl.setFormelZGL1(qidbKennzahl .getFormelZPseudo() + " test");
em.merge(aquaQidbKennzahl);
}
em.getTransaction().commit();
}