我对JPA和manytoone的关系感到困惑,我有一个类“Judiction”,它有很多“Judidget”,当我试图将一个Judidge实例存储到postgres db中时,它抛出错误消息如下:
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;
}
}
}
在我的数据库中,我有判断表和用户表,我需要为多通关系创建一个作为判断用户的表吗?
首先,如果如你所说,你正在寻找一个有许多法官的判决,你就有落后的东西。正如kem在他的评论中所建议的,你现在编码的方式许多判决都有一个法官,反之,一个法官可能有许多判决。
在回答您的问题时,与您试图保存的判决相关联的法官本身并未被保存。你的级联定义不允许persist级联到judge中,因此JPA别无选择,只能抛出异常。您可以更改级联定义,或手动保存判断。如果judge是持久的,但已分离,则可能需要先将其合并,以将其重新附加到实体管理器。
我读了很多关于我的问题的文件,但建议不能解决我的问题,所以我被迫打开这个主题。 我的问题是,当我试图保存我的实体时,我遇到了以下错误。我添加了实体类。谢谢 保存代码 员工表 员工上传表
当我尝试使用hibernate postgresql获取列表时,我收到以下错误 MyObject: 用户: 首先,我获取用户并将其保存在用户对象中: 然后,当我试图通过用户获取MyObject的列表时: 我收到 我做错了什么?
下面是代码: 我看到了很多帖子,但这并没有解决我的问题。感谢您的帮助。这里的RoleLookup是一个静态表。以下是例外: 组织。冬眠TransientObjectException:对象引用未保存的临时实例-在刷新之前保存临时实例:com。德国商业银行。清理CCP领域用户角色。roleLookup-
我有一个主表和一个表,它们之间有一对一的关系。在添加
我正在使用Hibernate,出现以下错误: - 我创建了一个实体的对象,我在其中执行了以下操作:
问题内容: 使用Hibernate保存对象时收到以下错误 问题答案: 你应该在集合映射中包括如果使用xml)或(如果使用注释)。 发生这种情况是因为你的实体中有一个集合,并且该集合具有一个或多个数据库中不存在的项目。通过指定上述选项,你可以告诉hibernate在保存其父项时将它们保存到数据库中。