В настоящее время я переношу проект Grails 2.4 на Grails 3.0.10 или 3.1.0.M3.Как определить составной первичный ключ в Grails 3.0?
В 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
}
Я не могу найти способ, чтобы обнаружить это в Public API.
Хотя GrailsDomainClass все еще существует в исходном коде реализации, я не могу получить доступ к нему из своего проекта и не могу найти старый CompositeIdentity.
Альтернативная стратегия может быть выполнена через targetClass.getIdentifier().getType()
, но я не могу найти документацию о том, как определить составной ключ, используя тип идентификации.