如果我在 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 
} 

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!