2011-05-29 88 views
0

我繼承了一個Grails項目,該項目同時具有Hibernate .xml文件和模型的Domain類。這thread使我相信這是不正確的。我正在將該項目從1.0.3升級到1.3.7。我理解它的方式,它在1.0.3中工作,但在1.2之後不再支持。Grails - 休眠XML和域類

Hibernate XML文件提供了對象的所有映射,但Domain中的相同對象具有擴展對象的屬性和方法,所以兩者都有意義保留。

  • 有什麼辦法我仍然可以有兩全其美(保持 Hibernate映射還有 域對象)的?

  • 如果不是,推薦的方法是什麼?

UPDATE:

我希望能有一個Hibernate XML文件Book.hbm.xml以及具有對類額外的方法文件/src/groovy/Book.groovy 。

從它看起來像它們是作爲兩個獨立的事物處理的文檔:

問:我怎樣才能訪問的src來源域類 /Groovy的?

有時候,你正在開發一些 住在 的src/Groovy和您打算使用的服務等文物 實用程序類。 但是,由於這些類是由Grails預編譯的 ,因此它不是 可以實例化它們並編寫 這樣的東西,例如Book.findByTitle(「Action中的Groovy 」)。不過幸運的是,有 一個解決辦法,因爲這是可能做到這 :

進口 org.codehaus.groovy.grails.commons.ApplicationHolder // ... DEF書= ApplicationHolder.application.getClassForName(「庫。書「)。findByTitle(」常規 在行動」

不看起來像這將是做,如果有人想使用Hibernate XML很正常的事情

回答

1

您需要的類定義文件的src/java的和Hibernate映射文件的grails-app/conf目錄/休眠Grails 1.0.3 Upgrade Problems解釋。

+0

JamesA - 請參閱上面的我的編輯。我真正想要的是能夠使用額外的方法來擁有Book.hbm.xml以及src/groovy/Book.groovy,並且能夠調用這些方法。你能看到我更新的上面的編輯? – skaz 2011-05-30 14:39:59

+0

Book.hbm.xml告訴Hibernate如何將數據庫映射到您的Book.groovy類,並且Grails添加GORM動態方法。你還有困難嗎? – jamesallman 2011-06-01 04:31:17

+0

我不確定。我按照你的建議做了,但是由於我發佈的一個(可能不相關的)問題沒有得到更多的進一步發現:http://stackoverflow.com/questions/6177570/grails-hibernate-domain-nullpointerexception – skaz 2011-06-02 14:01:46

0

根據this: 如果GORM(Grails對象關係映射)不夠靈活,您可以選擇使用Hibernate映射您的域類,無論是通過XML映射文件還是通過JPA註釋。您將能夠將Grails領域類映射到更廣泛的遺留系統上,並且可以更靈活地創建數據庫模式。最重要的是,您仍然可以調用GORM提供的所有動態持久性和查詢方法!