2011-12-27 69 views
11

那麼,是否可以混合使用這兩種配置而不是僅使用其中的一種?在Hibernate中:是否可以混合實體的註釋和XML配置?

我只想保留註解的所有配置,並通過XML讀取表格。

可能嗎?

非常感謝。

編輯: hbm.xml文件將如何?我有這個:

<?xml version="1.0" encoding="utf-8" ?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
    <class name="MyData" table="MyTable" > 
    </class> 
</hibernate-mapping> 

並且不編譯dtd。

+0

這篇文章告訴你可以做到這一點。你有沒有嘗試過? https://forum.hibernate.org/viewtopic.php?f=1&t=931958&view=previous – 2011-12-27 10:21:16

+0

是的,現在我知道是可能的,但我不知道如何填寫我的xml配置文件只與表名稱。 – ganzux 2011-12-27 10:37:03

回答

19

的Hibernate文檔(最新)

請注意,您可以混合使用傳統使用hbm.xml和註解 方法。資源元素可以是hbm文件,也可以是XML部署描述符。這個區別對於您的配置過程是透明的。

您可以將帶註釋的持久類和經典的hbm.cfg.xml 聲明與相同的SessionFactory混合使用。但是,您可以多次聲明 一個類(無論是帶註釋還是通過hbm.xml)。您不能在實體 層次結構中混合配置策略(hbm vs註釋)。

爲了簡化從hbm文件到註釋的遷移過程,配置機制 檢測到註釋和hbm文件之間的映射重複。然後HBM文件優先於基於類到類的基於註釋元數據的 。您可以使用hibernate.mapping.precedence屬性更改 優先級。缺省值爲 hbm, class,如果發生衝突,將其更改爲class, hbm將優先考慮在hbm文件上註釋的 類。

相關問題