Java Hibernate:session.merge是否执行插入而不是更新?
我的代码中发生了一件奇怪的事情 我使用了session.merge,它在更新主表时应该更新子表。但对我来说,在我的子表中更新主表之后,将创建一条新记录,我需要解决这个问题。请导游。问题出在哪里?。它可以是实体文件吗 请查找下面的代码Java Hibernate:session.merge是否执行插入而不是更新?,java,hibernate,jpa,Java,Hibernate,Jpa,我的代码中发生了一件奇怪的事情 我使用了session.merge,它在更新主表时应该更新子表。但对我来说,在我的子表中更新主表之后,将创建一条新记录,我需要解决这个问题。请导游。问题出在哪里?。它可以是实体文件吗 请查找下面的代码 public void update(List print) throws DataAccessException { try { if (print != null && print.size() >
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");
}
}
我已经解决了这个问题。 我通过在变量中添加
属性来解决这个问题。由于没有删除
属性,因此没有删除早期的属性,因此我在应用程序中得到了错误的数据。下面是正确的代码
@OneToMany(mappedBy = "printColor", fetch = FetchType.LAZY, cascade= {CascadeType.ALL}, orphanRemoval=true)
private Set<PrintColorFormatter> printColorSets;
@OneToMany(mappedBy=“printColor”,fetch=FetchType.LAZY,cascade={CascadeType.ALL},orphan=true)
私有集打印颜色集;
这是一个持久对象吗?它是否有一个有效的id
?是的,Print是一个持久对象(对主表的引用),我有需要更新的子表。您可以添加相关的实体类吗?什么类型的对象包含PrintList
?我正在添加java文件