有一个类似的question,但我的情况与定义的级联有点不同。
尝试使用非空SiteEntity保存任务时 - 一切正常。但是,当您尝试使用null SiteEntity保存一个时,会出现一个null参数异常(不成问题) - 并且在SITES表中创建一个新行时使用虚拟SiteEntity结束...
这是相关的一段代码(省略了无关数据):
@javax.persistence.Table(name = "TASKS")
@Entity
public class Task {
@Id
@GeneratedValue
@Column(name = "ID", unique = true, nullable = false)
private int id;
@ManyToOne(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="SITEID", nullable = true)
@NotFound(action = NotFoundAction.IGNORE)
@ForeignKey(name = "id")
private SiteEntity site;
}
@javax.persistence.Table(name = "SITES")
@Entity
public class SiteEntity {
@Id
@Column(name = "ID")
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
}
问题基本上是如何使用null SiteEntity保存任务 - 结果是0将被写入TASKS表的SITEID列?
P.S。完全删除级联(保存它"原样并稍后处理网站")并没有改变这种情况。
感谢您的帮助!