我有2个实体其中一个是另一个的外键:JPA插入外键为空
@Entity
@Table(name = "XXXX")
@XmlRootElement
public class Drfacopt implements Serializable {
@Id
@NotNull
@Basic(optional = false)
@Column(name = "OPCOD")
private Short optionCode;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 50)
@Column(name = "OPCODDH")
private String optionCodeDescription;
}
@Entity
@Table(name = "YYYY")
@XmlRootElement
public class Drfac03f implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected Drfac03fPK drfac03fPK;
@JoinColumn(name = "F3OPT", referencedColumnName = "OPCOD")
@ManyToOne(optional = false)
private Drfacopt relationCode;
}
,当我尝试使用em.persist(drfac03f)
我得到这个例外,插入新记录:
During synchronization a new object was found through a relationship that was not marked cascade PERSIST
如何插入外键为空?我想拥有@Null,因此当用户直接向Drfacopt插入记录时,它不会为null或零,但如果它是通过Drfac03f,那么它可以插入为空。如何才能做到这一点?
显示代码插入并获取异常的位置。 – acdcjunior
您是否自己创建了“Entities”,或者您是否从数据库生成了它们? – Darwind
@Darwind:实体是从数据库中生成的.. – user2046810