Hallo我有一个带有@ManyToOne Relations的实体
@Entity
public class TerminEntity extends AbstractEntity implements Serializable {
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "PERSON_ID")
private PersonEntity person;
@MappedSuperclass
public abstract class AbstractEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "termineIdGenerator")
@SequenceGenerator(name="termineIdGenerator", sequenceName = "SEQ_TERMINVERWALTUNG")
private Long id;当我尝试使用数据库中不存在的PersonEntity来持久化TerminEntity时,我得到
java.lang.IllegalStateException:在同步期间,通过未标记为cascade PERSIST的关系找到新对象: TerminEntity(person=PersonEntity
为什么?@ManyToOne(cascade = CascadeType.PERSIST)注释有什么问题?
在Oracle Weblogic 12c上运行
发布于 2018-10-26 19:19:52
我不知道为什么,但在将注释更改为
@ManyToOne(optional = false, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
@JoinColumn(name = "PERSON_ID", referencedColumnName = "ID", nullable = false) 持久化是可行的。
https://stackoverflow.com/questions/53007063
复制相似问题