Oracle上的Hibernate sequence,@GeneratedValue(strategy = GenerationType.AUTO)
我@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 值将更新序列。在下一次插入父项时,序列...使用由子插入更新的值...
这个注释不是创建两个序列,而是创建一个序列。这是正确/预期的吗?
我仅使用使用我的 DAO 服务插入我的实体entityManager.persist(parent);