2

如果我有一个MyDomainClass在 grails 中调用的域类,如下所示:

class MyDomainClass {
    MyNonDomainClass nonDomainClass    
}

和 MyNonDomainClass:

class MyNonDomainClass {
   String name
   int age   
}

MyNonDomainClass由于是非域类,休眠映射是否会正确设置?还是我需要明确指定类型,例如:

class MyDomainClass {
    def nonDomainClass
    static mapping = { nonDomainClass type: MyNonDomainClass }
}

或者MyNonDomainClass因为它不是域类,所以也不能作为一种类型工作?

4

1 回答 1

5

Grails 不知道如何处理这个类,因此您需要实现 Hibernate 的UserType。可以在Hibernate 的文档中找到一个示例。

有了这个类,您可以在grails.gorm.default.mapping. 例子:

class MyNonDomainClassUserType implements UserType {
  ...
}

配置文件

grails.gorm.default.mapping = {
  "user-type" type: MyNonDomainClassUserTye, class: MyNonDomainClass
}

使用此配置,无需更改域类。

于 2013-08-13T20:07:11.480 回答