如果我在grails中有一个名为MyDomainClass
的域类,如下所示:
class MyDomainClass {
MyNonDomainClass nonDomainClass
}
和MyNonDomainClass:
class MyNonDomainClass {
String name
int age
}
是否会正确设置hibernate映射,因为MyNonDomainClass
是非域类?或者我是否需要明确指定类型,例如:
class MyDomainClass {
def nonDomainClass
static mapping = { nonDomainClass type: MyNonDomainClass }
}
或者MyNonDomainClass
不能作为一种类型工作,因为它不是一个域类?
答案 0 :(得分:5)
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
}
使用此配置,无需更改域类。