这是Hibernate中的错误。令人惊讶的是,尚未报告,请随时进行报告。
针对未初始化的惰性集合的 *** 作要排队以便在初始化集合之后执行它们,并且当这些 *** 作与数据库中的数据冲突时,Hibernate不会处理这种情况。通常这不是问题,因为此队列已在清除
flush(),并且可能有冲突的更改也会在此传播到数据库
flush()。但是,某些更改(例如,具有类型为generator的生成器生成的ID的实体的持久化
IDENTITY,我想这是您的情况)会传播到数据库中,而不包含full
flush(),在这种情况下可能会发生冲突。
作为解决方法,您可以
flush()在保留孩子之后进行会话:
em.persist(child); em.flush();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)