我有与以下类似的表结构:
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 之间存在一对多的关系。我的问题是,如果我对这些表中的每一个都有一个实体,其中:
- 实体 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”列中的空值违反非空约束详细信息:失败行包含(空,测试,16)