Я использую @GeneratedValue (strategy = GenerationType.AUTO) для генерации идентификатора на моей сущности.
Теперь я не понимаю, как это работает, но на моей дочерней таблице генерирует значения идентификатора, которые следуют за родительской последовательностью.
//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;
}
Введенные значения идентификатора родителя, обновляет последовательность. Введенные идентификационные значения для дочерних элементов, обновляет последовательность. В следующей вставке родителя последовательность... использует значения, обновляемые дочерними вставками...
Эти аннотации не создают две последовательности, только одну. Правильно ли это/ожидалось?
Я вставил свои объекты с помощью моей службы DAO только с помощью entityManager.persist(parent);