【发布时间】:2014-02-04 02:19:51
【问题描述】:
我正在使用 JPA 的 Hibernate 3.6 实现。我在逻辑父子关系中有两个表。通常,对于“父”中的每条记录,“子”中都会有一个记录。表格如下所示:
CREATE TABLE FOO (
FOO_ID INT IDENTITY,
BAR_ID INT DEFAULT 0 NOT NULL,
SOMEDATA CHAR(50) );
CREATE TABLE BAR (
BAR_ID INT IDENTITY,
OTHERDATA CHAR(50),
STILLOTHER CHAR(50)) ;
但是,已经决定一些“父”记录不应该有“子”记录,我应该在FOO.BAR_ID 列中添加一个0。
如何在我的实体类中实现这一点?现在这些类看起来像这样:
public class Foo implements java.io.Serializable {
@Id
@GeneratedValue
@Column(name = "FOO_ID", unique = true, nullable = false)
private Long fooId;
@OneToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinColumn(name = "BAR_ID", nullable = false)
private Bar bar;
}
public class Bar implements java.io.Serializable {
@Id
@GeneratedValue
@Column(name = "BAR_ID", unique = true, nullable = false)
private Long barId;
)
我似乎找不到将0 放入FOO.BAR_ID 列的正确语法,而不是尝试在BAR 表中创建记录。这甚至可以用 Hibernate 完成吗?
【问题讨论】:
-
为什么是 0?只需输入 null 就可以了。