2017-08-21 2 views
1

Ich versuche, die com.chqmas.user.User-pojo-Klasse den Tabellen USR table.and USR_PWD_HISTORY zuzuordnen.So ordnen Sie eine einzelne POJO-Klasse mehreren Tabellen zu

<?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.chqmas.user.User" table="USR" batch-size="50"> 
     <id name="name" column="NAME"/> 
     <property name="bankBranch" column="BANK_BRANCH"/> 
     <property name="realName" column="REAL_NAME"/> 
     <property name="pwd" column="PWD"/> 
     <property name="pwdenc" column="PWD_ENC"/> 
     <property name="level" column="LEVEL"/> 
     <property name="url" column="URL"/> 
     <property name="status" column="STATUS"/> 
     <property name="lastSignOnDate" column="LAST_SIGN_ON_DATE"/> 
     <property name="passWdChangedDate" column="PASS_WD_CHANGE_DATE"/> 
    </class> 

    <class name="com.chqmas.user.User" table="USR_PWD_HISTORY" batch-size="50"> 
     <id name="name" column="NAME"/> 
     <property name="pwd" column="PWD"/> 
     <property name="pwdenc" column="PWD_ENC"/> 
     <property name="passWdChangedDate" column="PASS_WD_CHANGE_DATE"/> 
    </class> 
</hibernate-mapping> 

Aber ich habe diesen Fehler ..

enter image description here

Wie kann ich diese pojo Klasse zu diesen beiden Tabellen abzubilden.

Vielen Dank.

+0

unmöglich. Schlagen Redesign Java-Klassen - BTW Ich denke, sie sind 1: N-Beziehung? –

+1

Wie ist die Beziehung zwischen den beiden Tabellen? – MartinByers

+0

Keine Beziehung zwischen zwei Tabellen. –

Antwort

1

USR und USR_PWD_HISTORY repräsentieren zwei verschiedene logische Entitäten. Warum also nicht die Liste der Passworthistorie im Benutzerobjekt aufbewahren?

+0

was meinst du Benutzerobjekt? –

+0

eine Instanz der Benutzerklasse [siehe] (https://stackoverflow.com/a/1486212/4725465) – mzalcmanis

0

Dies ist möglich, obwohl ich diesen Ansatz dringend nochmals rate, da ich nicht glaube, dass es sich um eine genaue Darstellung der Daten handeln würde.

Sie können das Join-Element im HBM verwenden.

<class name="com.chqmas.user.User" table="USR" ...> 
    <id name="name" column="NAME"/> 
    <!-- mappings for other columns from USR table --> 

    <join table="USR_PWD_HISTORY"> 
     <!-- 
      key defines the pk column of that joined table which is assumed 
      to also be the foreign-key source column referring back to 
      USR 
     --> 
     <key column="name"/> 

     <!-- mappings for other columns from USR_PWD_HISTORY table --> 
    </join> 
</class> 

Allerdings würde ich dies nicht für eine 1-zu-viele oder viele-zu-viele-Beziehung empfehlen, wo ein zweiter POJO und eine Tasche besser geeignet wäre.

Zusätzlich würden die Spaltennamen vorschlagen, dass Klartextpasswörter gespeichert werden, dies ist ein Sicherheitsrisiko und ist "schlechte Praxis".

Verwandte Themen