Hibernate:在多对一关系中保存null实体

时间:2015-07-14 09:51:53

标签: java mysql hibernate jpa

有一个类似的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。完全删除级联(保存它"原样并稍后处理网站")并没有改变这种情况。

感谢您的帮助!

0 个答案:

没有答案