6

我已經創建了將被用於獲取數據僅(只讀)的圖要映射數據庫視圖沒有主鍵,在Hibernate XML映射

檢視:Grid_View

>我的Hibernate HBM文件

<hibernate-mapping> 
    <class name="hibernate.domain.View" table="Grid_View" mutable="false"> 
     <property name="ACCT_BR_CD" type="string"> 
      <column name="ACCT_BR_CD"/> 
     </property> 
     <property name="ACCT_NO" type="string"> 
      <column name="ACCT_NO"/> 
     </property> 
     <property name="LGL_ENTY_NM" type="string"> 
      <column name="LGL_ENTY_NM"/> 
     </property> 
     <property name="CUST_CTRY_CD" type="string"> 
      <column name="CUST_CTRY_CD"/> 
     </property> 
     <property name="ACCT_SRC_SYS_CD" type="string"> 
      <column name="ACCT_SRC_SYS_CD"/> 
     </property>  
    </class> 
</hibernate-mapping> 

>因爲他們在我看來並不是主鍵,所以在我的映射中我沒有提到id字段。 但在休眠ID是必需的。

>我的提問

如何與地圖進行,不會在Hibernate映射文件ID。 他們沒有獨特的價值觀列,所以他們沒有任何機會讓他們成爲關鍵。請幫我解決這個問題

回答

4

你有兩個選擇要麼添加複合鍵或添加

<id column="ROWID" type="string" /> 

Hibernate的需要獨特的鍵映射。最好的方法是添加主鍵。

+0

但是沒有任何列具有唯一的數據。 – Dev 2013-04-05 09:49:20

+1

然後你可以在表中添加一個「自動增量」列,這是最好的方法,因爲如果沒有唯一的id,如findById方法和表之間的映射,許多功能將無法正常工作,這就是爲什麼hibernate強制使用ID。並且在ID的選項中,您可以添加組合鍵並將所有列包含在該組合鍵中,而不是使用該組合鍵。 – commit 2013-04-05 09:56:58

+0

Thanks.Its已解決 – Dev 2013-04-08 09:19:22