Grails - Hibernate XML和Domain Classes

时间:2011-05-29 21:13:34

标签: xml hibernate grails upgrade

我继承了一个Grails项目,它包含Hibernate .xml文件和Model的Domain类。这thread让我相信这是不正确的。我正在将项目从1.0.3升级到1.3.7。我理解它的方式,它在1.0.3中工作,但在1.2之后不再受支持。

Hibernate XML文件提供了对象的所有映射,但Domain中的相同对象具有扩展对象的属性和方法,因此两者都有意义。

  • 有什么方法可以让两个世界都做到最好(保持 Hibernate Mapping以及 域对象)?

  • 如果没有,建议的推荐方式是什么?

更新:

我希望能够拥有一个Hibernate XML文件Book.hbm.xml以及一个在该类上有额外方法的文件/src/groovy/Book.groovy。

从文档看起来它们被视为两个独立的东西:

  

问:如何访问域类   来自src / groovy的来源?

     

有时候,你正在开发一些   住在的实用工作类   src / groovy以及您打算使用的   来自服务和其他文物。   但是,正如那些课程一样   由Grails预编译,但事实并非如此   可以实例化它们并写入   像Book.findByTitle(“Groovy   在行动“)。但幸运的是,有   一种解决方法,因为它可以做到   这样:

     

进口   org.codehaus.groovy.grails.commons.ApplicationHolder   // ... def book =   ApplicationHolder.application.getClassForName( “library.Book”)。findByTitle(“常规   在行动“

如果有人想使用Hibernate XML,这似乎不是正常的做法吗?

2 个答案:

答案 0 :(得分:1)

您需要 src / java 中的类定义文件和 grails-app / conf / hibernate 中的hibernate映射文件,如Grails 1.0.3 Upgrade Problems中所述。< / p>

答案 1 :(得分:0)

根据this: 如果GORM(Grails对象关系映射)不够灵活,您可以使用Hibernate通过XML映射文件或JPA注释来映射您的域类。您将能够将Grails域类映射到更广泛的遗留系统,并在创建数据库模式时更灵活。最重要的是,您仍然可以调用GORM提供的所有动态持久性和查询方法!