Java 增加allocationSize会生成非UniqueObjectException

Java 增加allocationSize会生成非UniqueObjectException,java,hibernate,jpa,Java,Hibernate,Jpa,我正试图在我的(Oracle)数据库中插入一组母对象对象,这些对象包含一组子对象。这些对象的所有ID都是使用以下序列生成的: @Entity @Table(name = "MOTHER") public class Mother implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ_MOTHER") @SequenceGenerat

我正试图在我的(Oracle)数据库中插入一组
母对象
对象,这些对象包含一组
子对象。这些对象的所有ID都是使用以下序列生成的:

@Entity
@Table(name = "MOTHER")
public class Mother implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ_MOTHER")
    @SequenceGenerator(name="SEQ_MOTHER", allocationSize=100)  //Error?!?
    @Column(name = "ID")
    private Long id;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "mother", 
               orphanRemoval = true)
    private List<Child> children;    
}
在我的模型中,如果我没有设置任何
allocationSize
(根据文档,默认值为50),或者将其设置为小于50的值,则一切正常

但是,如果我尝试将其设置为100或更高,那么我会一直出现
非UniqueObjectException

javax.persistence.PersistenceException: org.hibernate.NonUniqueObjectException: 
    a different object with the same identifier value was already associated with 
    the session
“解决方案”可以是更改级联(我没有尝试更改它),但我希望在持久化母实例(并检索它们…)时持久化所有子实例


我可能不需要将
alocationSize
设置为一个高值,但是如何增加它以提高插入性能而不出现异常?以及如何确保即使不设置,错误也不会隐藏在某个地方?

您必须将生成器的
分配大小设置为与序列上的“INCREMENT BY”相同的值。有关JPA测序的更多信息

javax.persistence.PersistenceException: org.hibernate.NonUniqueObjectException: 
    a different object with the same identifier value was already associated with 
    the session