gpt4 book ai didi

java - Hibernate:session.merge执行插入而不是更新?

转载 作者:行者123 更新时间:2023-11-30 07:57:39 24 4
gpt4 key购买 nike

我的代码中发生了一件奇怪的事情。

我使用了 session.merge ,它在更新主表时应该更新子表。但对我来说,在子表中更新主表后,正在创建一个新记录,我需要解决该问题。请指导。问题可能出在哪里?可以是实体文件吗?

请找到以下代码。

public void update(List print) throws DataAccessException {
try {
if (print != null && print.size() > 0)
for (Object object : print) {
entityManager.merge(object);
}
} catch (HibernateException e) {
throw new DataAccessException("HibernateException");
}
}

最佳答案

我已经能够解决这个问题了。我通过向变量添加 orphanRemoval 属性来解决这个问题。由于没有 orphanRemoval 属性,它不会删除较早的属性,因此我在应用程序中得到了错误的数据。下面是更正后的代码。

@OneToMany(mappedBy = "printColor", fetch = FetchType.LAZY, cascade= {CascadeType.ALL}, orphanRemoval=true)
private Set<PrintColorFormatter> printColorSets;

关于java - Hibernate:session.merge执行插入而不是更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32441319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com