Приложение My Spring Boot использует 2 класса сущностей.Класс сущности 1 использует идентификатор технического ключа, который использует последовательность.Сущность содержит список других сущностей, поэтому один ко многим.Дочерний объект использует ту же последовательность.
Используя размер 20 для последовательного выделения (кэширования), я вижу, что получаю EntityExistsException:
javax.persistence.EntityExistsException: другой объект с таким же значением идентификатора уже был связанс сеансом: [nl.xyz.app1.entity.ChildFields # 123456]
Объектами являются:
@Entity
@Table(name = "CHILD_FIELDS")
public class ChildFields implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "my_entity_seq_gen")
@SequenceGenerator(name = "my_entity_seq_gen", sequenceName = "MYSEQ_S01")
@Column(name = "CF_ID", unique = true, nullable = false)
private Long id;
@Column(name = "CF_DETAILS_ID")
private Long detailsId;
И
@Entity
@Table(name = "PARENTS_OBJECT")
public class ParentObject implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "my_entity_seq_gen")
@SequenceGenerator(name = "my_entity_seq_gen", sequenceName = "MYSEQ_S01")
@Column(name = "PF_ID", unique = true, nullable = false)
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "CF_DETAILS_ID")
private List<ChildFields> children;
КогдаЯ использую последовательность размещения 1, тогда все в порядке!Почему это?
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "my_entity_seq_gen" )
@SequenceGenerator(name = "my_entity_seq_gen", sequenceName = "MYSEQ_S01", allocationSize=1)
И т.д.