【发布时间】:2013-07-16 18:11:20
【问题描述】:
我的表结构与以下类似:
Table_A(
a_id,
data,
primary key(a_id)
)
Table_B(
b_id,
a_id,
data,
primary key (b_id),
foreign key (a_id) references Table_A(a_id)
)
Table_A 和 Table_B 之间存在一对多的关系。我的问题是,如果我对这些表中的每一个都有一个实体,其中:
- Entity Table_A 由 Table_B 实体列表和
- 实体 Table_B 不一定需要引用 Table_A(只需字段 b_id、a_id、数据)
是否有可能以一种我可以持久化 Table_A 实体的方式注释这些实体,并且该过程将使用新生成的 Table_A 主键 a_id 的值隐式持久化所有 Table_B 实体。
提前致谢。
这就是我所拥有的。但我得到以下异常。看起来 Table_B 在 Table_A 之前被持久化,因此不存在 a_id 值。
@Entity
public class Table_A {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "a_id")
private Integer id;
@OneToMany (cascade = CascadeType.PERSIST)
@JoinColumn(name="a_id")
private List<Table_B> bList;
private String data;
}
@Entity
public class Table_B {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "b_id")
private Integer id;
private String data;
}
错误:“a_id”列中的空值违反非空约束 详细信息:失败行包含 (null, Testing, 16)
【问题讨论】: