如果我在 grails 中有一个名为 MyDomainClass 的域类,如下所示:
class MyDomainClass {
MyNonDomainClass nonDomainClass
}
和 MyNonDomainClass:
class MyNonDomainClass {
String name
int age
}
由于 MyNonDomainClass 是非域类,hibernate 映射是否会正确设置?或者我是否需要明确指定类型,例如:
class MyDomainClass {
def nonDomainClass
static mapping = { nonDomainClass type: MyNonDomainClass }
}
或者 MyNonDomainClass 也不能作为类型工作,因为它不是域类?
请您参考如下方法:
Grails 不知道如何处理此类,因此您需要实现 Hibernate 的 UserType 。可以在 Hibernate's docs 中找到示例。 .
有了这个类,您就可以在grails.gorm.default.mapping中配置您的类型。示例:
class MyNonDomainClassUserType implements UserType {
...
}
Config.groovy
grails.gorm.default.mapping = {
"user-type" type: MyNonDomainClassUserTye, class: MyNonDomainClass
}
使用此配置,无需更改域类。




