2016-07-26 19 views
1

accountNumberprimarykeyと設定したAbstractAccount hbmファイルがあります。私はAccount.hbm.xmlファイルでこのクラスを拡張しています。このプライマリキーを乗り越えたい場所は、countryCodeaccountNumbercomposite keyです。これどうやってするの?hibernateサブクラスでプライマリキーを上書きする

Abstract.hbm.xmlファイル。

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping> 
    <class name="com.*.*.*.AbstractAccount" 
    abstract="true" 
    table="ACCOUNT" 
    lazy="false"> 
     <id name="accountNumber" type="java.lang.String"> 
      <column name="ACCOUNT_NUMBER" length="16" /> 
      <generator class="assigned" /> 
     </id> 
     <discriminator column="ACCOUNT_TYPE" type="string"/> 
     ................ 
    </class> 
</hibernate-mapping> 

Account.hbm.xml

<property name="modifiedDate" type="java.util.Date"> 
     <column name="MODIFIED_DATE"/> 
    </property> 
    <property name="countryCode" type="java.lang.String"> 
     <column name="COUNTRY_CODE"/>    
    </property> 
    ............... 
</subclass> 

私は以下のように複合キーを追加して試してみましたが、それは動作していない

<composite-id name="account_country"> 
<key-property name="countryCode" column="COUNTRY_CODE" /> 
<key-property name="accountNumber" column="ACCOUNT_NUMBER" /> 
</composite-id> 
+0

あなたAbstract.hbm.xml – Gokul

+0

@Gokulに<結合されたサブクラス>使用することができますあなたはどのように、より具体的なことができますすることができます私はここで使う。とにかく私は継承構造を変えることはできません。 –

答えて

0

Abstract.hbm.xml

<hibernate-mapping> 
    /* Abstract class properites */ 

    <joined-subclass name="Account" table="tablename"> 

    /* Account class properites */ 

    </join-subclass> 
</hibernate-mapping> 
+0

プライマリキーと共通プロパティの両方を同じクラスに維持する – Gokul

+0

Abstract.hbm.xmlファイルを変更することはできません。その大きなプロジェクトの一部であり、プロジェクトでは多くの場所を使用し、別のチームによる保持も行います。私はそれを 'account hbm'で'上書き 'したい、それは疑問です。返信いただきありがとうございます。 –

関連する問題