現在、Grails 2.4 プロジェクトを Grails 3.0.10 または 3.1.0.M3 に移行しています。
Grails 2.4 では、ドメイン クラスが複合主キーを備えているかどうかを検出するための回避策として、次の方法があります。
void isCompositePrimaryKey(GrailsDomainClass targetClass) {
def binder = new GrailsDomainBinder()
def idMapping = binder.getMapping(targetClass).identity
return idMapping instanceof org.codehaus.groovy.grails.orm.hibernate.cfg.CompositeIdentity
}
パブリック API でこれを検出する方法が見つかりません。
GrailsDomainClass は実装ソース コードにまだ存在しますが、プロジェクトからアクセスできないようで、古い CompositeIdentity を見つけることもできません。
代替戦略は経由である可能性targetClass.getIdentifier().getType()
がありますが、ID タイプを使用して複合キーを検出する方法に関するドキュメントが見つかりません。