2016-07-26 2 views
1

J'ai un fichier hbm AbstractAccount où j'ai défini accountNumber comme primarykey. J'amplifie cette classe dans mon fichier Account.hbm.xml où je veux surmonté cette clé primaire comme countryCode et accountNumbercomposite key. Comment puis-je faire ceci?Remplacer la clé primaire dans la sous-classe hibernate

Fichier 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> 

J'ai essayé avec l'ajout d'une clé composite comme ci-dessous, mais il ne fonctionne pas.

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

vous pouvez utiliser dans votre Abstract.hbm.xml – Gokul

+0

@Gokul Pouvez-vous être plus précis, Comment J'utilise ici. Je ne peux pas changer la structure de l'héritage de toute façon. –

Répondre

0

Abstract.hbm.xml

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

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

    /* Account class properites */ 

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

Conserver la clé primaire et certaines propriétés communes identiques dans les deux classes – Gokul

+0

Je ne peux pas modifier le fichier Abstract.hbm.xml. C'est une partie du grand projet et en utiliser beaucoup où dans les projets, aussi sa tenue par une autre équipe. Je veux le remplacer dans le compte hbm, c'est la question. Merci pour la réponse. –