我想知道如果下面的場景是一個Grails錯誤,或者如果簡單地有一種不同的方式,我需要表示遞歸關係。當一個getter返回同一個類時,自引用hasMany拋出了MappingException
創建一個Grails 2.1.0應用程序(使用創建應用內)和下(使用創建域類)域類產生上的MappingException「的grails運行應用」:
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
或任何其他類型,應用程序啓動罰款。同樣可以更改Person
類型的neighbours
hasMany。加入static transients = ['bestFriend']
沒有任何變化。
這個異常主要出現在我的搜索引用具有複合鍵的子對象時,但我無法找到類似於此示例的情況。提前感謝您的幫助!
創建JIRA針對此問題:http://jira.grails.org/browse/GRAILS-9453 – mwersch