0

我确实有一个在 Apache tomcat 7 上运行的系统(如果有任何区别,则为 7.0.34),其映射具有这样的属性

@OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST,CascadeType.MERGE})
@JoinTable(name = "device_document",
    joinColumns = {@JoinColumn(name = "device_id", referencedColumnName = "device_id")},
    inverseJoinColumns = @JoinColumn(name = "document_id", referencedColumnName = "id"))
public Set<Document> getDocuments() {
    return documents;
}

当我调用我的保存函数时它工作得很好,但一段时间后完全相同的代码,完全相同的数据会引发异常

unsaved transient instance - save the transient instance before flushing

每次我尝试保存实例时,它都会抛出该异常,直到(有时)我重新启动 tomcat 服务。

你知道为什么会这样吗?

4

1 回答 1

0

你用什么方法来保存?saveOrUpdate?

Documents仅当您添加到已保存的父实体时,它才会抛出“未保存的瞬态实例”吗?

尝试添加CascadeType.UPDATE到您的OneToMany注释中。

于 2013-09-27T01:40:23.640 回答