org.hibernate.HibernateException: Found shared references to a collection: com.jinyi.ihome.module.express.domain.HomeExpress.phoneUsers

HomeExpress类中有如下字段:

@OneToMany
@JoinColumn(name="OWNER_PHONE", referencedColumnName="EXPRESS_PHONE", insertable = false, updatable = false)
@NotFound(action = NotFoundAction.IGNORE)
@Setter
private List phoneUsers;

phoneUsers 这种一对多的字段在执行 .saveAndFlush() 方法进行更新时候容易出现该异常,解决办法是在执行更新前将其赋值为null就可以了,为了避免每次执行更新前都要将其设置为null,可以在其所在的实体类中加入如下代码:

@PreUpdate
private void onUpdate() {
    phoneUsers = null;
}

这个方法会在执行.saveAndFlush()前自动调用,就可以提前将phoneUsers 设置为null了。

你可能感兴趣的:(org.hibernate.HibernateException: Found shared references to a collection: com.jinyi.ihome.module.express.domain.HomeExpress.phoneUsers)