我想知道以下场景是否是 Grails 错误,或者我是否需要一种不同的方式来表示递归关系。
创建 Grails 2.1.0 应用程序(使用 create-app)和下面的域类(使用 create-domain-class)会在“grails run-app”上产生 MappingException:
class Person {
static hasMany = [neighbours:Person]
public Person getBestFriend() {
return null
}
}
Caused by MappingException: Foreign key (FKC4E39B558E488775:person [])) must have same number of columns as the referenced primary key (person [id])
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 662 | run . . in java.lang.Thread
如果getBestFriend()
返回类型为Object
或任何其他类型,则应用程序启动正常。更改hasMany的Person
类型也是如此。neighbours
添加static transients = ['bestFriend']
没有产生任何变化。
这个异常主要出现在我使用复合键引用子对象时的搜索中,但我找不到与此示例类似的情况。提前感谢您对此的任何帮助!