【发布时间】:2015-07-19 01:07:09
【问题描述】:
returnreason-table 中有三行,我不希望那里有更多行。用户只需选择三个原因之一,我只想要 rma-table 的 id。现在每次插入新的 rma 时都会在原因表中插入一个新行。我可以取消表之间的关系,但我想知道是否有更好的解决方案来避免在持久化 rma 对象时插入新行?如果我从 Rma 类中删除 cascadeType,它就没有帮助/工作。然后我收到一条错误消息,说 jpa 找到了一个没有持久化的对象或类似的东西。
如果我关闭了 cascadetype.ALL 则会出现错误消息
java.lang.IllegalStateException:在同步期间,通过未标记为级联 PERSIST 的关系找到了一个新对象:com.entity.Returnreason[ returnreasonId=null ]。
public class Rma implements Serializable {
@ManyToOne(cascade = CascadeType.ALL)
private Returnreason returnreasonReturnreasonId;
public class Returnreason implements Serializable {
@OneToMany(mappedBy = "returnreasonReturnreasonId", cascade = CascadeType.ALL)
private Collection<Rma> rmaCollection;
【问题讨论】:
-
“然后我收到一条错误消息,表示 jpa 找到了一个对象,该对象没有被持久化或类似的东西。”您能否向我们提供有关该错误的更多信息?
-
@over9k - 我在我的问题中添加了一条错误消息。
标签: java mysql jpa eclipselink one-to-many