2016-08-03 37 views
0

Ich habe vier Tabellen mit demselben SQL-SchemaWie eine Entitätsklasse mit vier Tabellen im Ruhezustand zugeordnet werden, die dasselbe SQL-Schema haben?

user_1 
+------+--------+----------------------+ 
| code | name | pass     | 
+------+--------+----------------------+ 
| 1 | rajiv | 12345    | 
+------+--------+----------------------+ 

user_2 
+------+--------+----------------------+ 
| code | name | pass     | 
+------+--------+----------------------+ 
| 1 | rajiv1 | 12345    | 
+------+--------+----------------------+ 

user_3 
+------+--------+----------------------+ 
| code | name | pass     | 
+------+--------+----------------------+ 
| 1 | raji2 | 12345    | 
+------+--------+----------------------+ 


user_4 
+------+--------+----------------------+ 
| code | name | pass     | 
+------+--------+----------------------+ 
| 1 | raji3 | 12345    | 
+------+--------+----------------------+ 

Ich mag nicht 4 Entitätsklasse für diese Tabelle

Gibt es eine Möglichkeit machen, so dass ich eine nur definieren Entity-Klasse und Karte alle vier Tabellen zu dieser Entität, so dass ich Daten von der Tabelle abrufen kann, die ich möchte

Antwort

0

Wenn Ihre Datenbank Ansichten unterstützt, würde ich empfehlen, eine Ansicht zu erstellen, die Daten aus allen vier Tabellen enthält, und diese Ansicht einer Entität zuzuordnen. Dies ist möglicherweise einfacher und sauberer als der Versuch, 4 Tabellen in einer Entität abzubilden.

0

Warum erstellen Sie nicht eine Tabelle und fügen Sie das Attribut user_number hinzu, erstellen Sie beim Erstellen der Verknüpfung mit Ihrer Entity vier Referenzen, von denen jede eine andere Benutzernummer hat und alle derselben Tabelle zugeordnet sind.

Eine weitere Möglichkeit, wenn Ihr Unternehmen eine Verbindung mit jeder Benutzertabelle hat, eine Klasse Benutzer erstellen und Fähiges macht Anmerkung mit „@Embeddable“, außer Kraft setzen Sie in Ihrem Unternehmen den Namen der Spalten

  @AttributeOverrides({ 
     @AttributeOverride(name = "code",[email protected](name="user1_code"))}) 
     private User user1; 

     @AttributeOverrides({ 
     @AttributeOverride(name = "code",[email protected](name="user2_code"))}) 
     private User user2; 

Hinweis: diese wird nicht einer anderen Tabelle zugeordnet, stattdessen werden die Spalten jedes Benutzers mit Ihrer Entität

zusammengeführt