我需要知道域类的某个属性是否是主键。有没有办法做到这一点?
例如,我有一个域类Person.groovy(使用hibernate),我动态加载这个类属于一个单独的插件。
class Person{
static mapping = {
table 'PERSON'
// version is set to false, because this isn't available by default for legacy databases
version false
id column:'PERSON_ID'
}
Long personId
String name
String address
static constraints = {}
}
我有另一个动态加载域类的类,它需要检查属性是否是主键。
答案 0 :(得分:1)
您可以通过以下方式获取域对象的标识符属性:
// Get a single Person and interrogate the domainClass
def idProp = Person.find {}.domainClass.identifier
然后您应该可以调用其中一个methods on the GrailsDomainClassProperty interface,即:
println idProp.name