2017-06-19 15 views
1

我有一個實體,例如客戶,這個實體映射表。所以,這個實體被用於不同的應用場合。在每種情況下,我們都需要不同的字段集合。一些數據在視圖上顯示,一些服務數據(例如不同的標誌和狀態)以及有時存儲在數據庫中的所有數據。現在我這樣做如何使用hibernate xml創建一個實體的多個版本?

<class name="Customer" table="customer" entity-name="CustomerFull"> 
<id name="id"> 
<property name="property 1" 
<property name="property 2" 
<property name="property 3" 
<property name="property 4" 
... 

<class name="Customer" table="customer" entity-name="CustomerLight"> 
<id name="id"> 
<property name="property 1" 
<property name="property 2" 
... 

<class name="Customer" table="customer" entity-name="OneMoreCustomer"> 
<id name="id"> 
<property name="property 3" 
<property name="property 4" 
... 

是否正確的方式來解決我這樣的任務?

+1

是的,您是在對您的映射表示對象「CustomerLight」在表中具有該引用。當hibernate讀取映射時,他會忽略引用的表是否有更多的列。 – DMC19

回答

1

是的這是可能的,你必須在你的hibernate.xml文件中添加這些代碼,在這個文件中映射模型或hbm文件,在這種技術中,我們不必爲模型或hbm創建任何額外的文件單個休眠文件中的所有實體

<hibernate-mapping> 
<class name="Employee" table="employee"> 
    <id name="id" type="java.lang.Integer"> 
     <column name="id"/> 
     <generator class="native"/> 
    </id> 
    <property name="name" type="java.lang.String"> 
     <column name="name"/> 
    </property> 
</class> 

<class name="Address" table="address"> 
    <id name="id" type="java.lang.Integer"> 
     <column name="id"/> 
     <generator class="native"/> 
    </id> 
    <property name="address" type="java.lang.String"> 
     <column name="address"></column> 
    </property> 
</class></hibernate-mapping> 
+0

真的,我從你的回覆中沒有理解任何東西。 「是的,這是可能的」,接下來你發佈絕對沒有幫助的代碼。正如我看到你的代碼描述了完全不同的情況。有2個實體映射到2個不同的表,當我需要多次映射同一個實體時它如何幫助我,它與我的問題有何關係? – snowhead

+1

#snowhead親愛的你必須將這些代碼放在你正在映射實體或hbm文件的hibernate.cfg.xml配置文件中,在那裏你可以添加這些映射而不是映射模型 –

相關問題