两个表之间的两个Grails关系 - 瞬态对象异常

时间:2014-06-04 09:07:04

标签: grails gorm hibernate-mapping relationships

我正在开展家谱项目。问题在于两个表 - Person和Marriage表。

婚姻阶层看起来像这样:

class Marriage implements Serializable{
 Person husband
 Person wife
 String notes 
}

主键是husband.idwife.id

此人类看起来像这样:

Class Person{
 //lots of members
 Marriage parents
}

一切正常,除了将父母添加到已经创建但没有父母的人,即更新此人。让正确的婚姻加入这个人是没有问题的。从头开始创建一个人并为他添加婚姻。我使用相同的代码。它适用于save(),但不适用于update()

问题在于:org.hibernate.TransientObjectException - object references an unsaved transient instance - save the transient instance before flushing: - 它是Marriage对象。它存在于数据库中,清晰可见。使用Grails控制台我可以轻松访问它。

我已经尝试belongsTohasOne,没有去。

知道该怎么办?我想保留复合键,它不会给我带来任何问题,并阻止同样的两个人进入另一个婚姻 - 如果他们这样做的话,笔记可以处理。

1 个答案:

答案 0 :(得分:0)

您在DB中看到的内容不会导致TransientObjectException 看起来您正在尝试保存perso实例,无法保存marriage实例 打印出两个对象的errors属性,以查看它们是否可以保存