gpt4 book ai didi

java - Hibernate:在多对一关系中保存空实体

转载 作者:行者123 更新时间:2023-11-30 22:39:55 25 4
gpt4 key购买 nike

有一个类似的question ,但我的情况与定义的级联有点不同。


尝试保存具有非空 SiteEntity 的任务时 - 一切正常。但是,当您尝试使用空 SiteEntity 保存一个时,会出现空参数异常(不出所料)- 使用虚拟 SiteEntity 会在 SITES 表中创建一个新行而结束...

这是相关的一段代码(省略无关数据):

@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;

}

基本上,问题是如何保存具有空 SiteEntity 的任务 - 结果是 0 将写入 TASKS 表的 SITEID 列?

附言完全删除级联(“按原样保存并稍后处理网站”)并没有改变这种情况。

谢谢你的帮助!

最佳答案

来自 Ondrej Bozek的想法 - 问题是 SITEID 上的“NOT NULL”约束。删除它解决了问题。

关于java - Hibernate:在多对一关系中保存空实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403294/

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