【发布时间】:2011-03-05 08:45:37
【问题描述】:
我正在使用@GeneratedValue(strategy = GenerationType.AUTO) 在我的实体上生成 ID。
我现在不知道它是如何工作的,但是在我的子表上,生成 ID 值,遵循父序列。
//parent table
@Entity
@Table (name = "parent")
public class Parent {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
@Column (name = "id")
private long id;
@OneToMany (cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinColumn (name = "parentId")
@ForeignKey (name = "FKparent")
private List<child> child;
}
//child table
@Entity
@Table (name = "child")
public class Child {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
@Column (name = "id")
private long id;
}
在父节点上插入的 ID 值会更新序列。 在子节点上插入的 ID 值会更新序列。 在父级的下一次插入中,序列...使用由子级插入更新的值...
这个注释,不是创建两个序列,只是一个。这是正确的/预期的吗?
我仅使用 entityManager.persist(parent); 将我的实体插入到我的 DAO 服务中
【问题讨论】: