次のシナリオが Grails のバグなのか、それとも再帰的な関係を表現するために必要な別の方法があるのか 疑問に思っています。
(create-app を使用して) Grails 2.1.0 アプリを作成し、以下のドメイン クラスを (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']
も変化はありませんでした。
この例外は主に、子オブジェクトを複合キーで参照するときに検索で表示されましたが、この例のような状況は見つかりませんでした。これについて何か助けてくれてありがとう!