JPA 操作数据库,在级联关系中,会遇到如下问题:
nested exception is java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST
解决方法: 在@OneToMany 或 @ManyToOne 或 @ManyToMany 初加上 cascade={CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.REFRESH}
如:
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE,CascadeType.REFRESH })
@JoinTable(name = "RECORD_RECORDER", joinColumns = { @JoinColumn(name = "USER_ID", referencedColumnName = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "RECORD_ID", referencedColumnName = "RECORD_ID") })
private List<Record> recorderRecords;