0
林困惑与JPA多对一关系,我有一类“判断”,其具有许多“判断”,当我试图存储判断实例放入postgres的分贝,它投掷错误消息为:休眠对象引用一个未保存的瞬态的实例
Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.dyihi.evaluation.model.Judgement.judge -> com.dyihi.evaluation.model.User
判断类:
@Entity
@Table(name = "JUDGEMENTS")
public class Judgement implements Serializable, Cloneable {
/**
*
*/
private static final long serialVersionUID = -7049957706738879274L;
@ManyToOne(cascade = { CascadeType.REFRESH, CascadeType.DETACH})
@JoinColumn(name = "user_id")
private User judge;
,我的服务类:
public Long store(Judgement judgement) throws RepositoryException {
EntityManager em = null;
EntityTransaction tx = null;
try {
em = _emf.createEntityManager();
tx = em.getTransaction();
tx.begin();
em.persist(judgement);
tx.commit();
return judgement.getId();
}
finally {
if (tx != null && tx.isActive()) {
tx.rollback();
}
if (em != null) {
em.close();
em = null;
}
}
}
和在我的数据库我有表判断和用户,我需要创建一个表作为ManyToOne关系的Judgement_User?
你的代码表明,法官有很多的判断,而不是相反 – kem
其他方式,你既创造了新的判断,并在同一时间,新用户? – kem
@kem:用户是管理员用户,当用户登录到系统,他们需要做的判断创建的,所以我只能创建新的判断和现有的用户分配作为判决的法官,在同一时间不能同时创建。同样,如果我想删除任何判断,用户应该根本没有触动。 – user468587