24

Ich versuche hibernate annotations zu verwenden, um Daten in eine MySQL database Tabelle einfügen, die nicht definiert einen Primärschlüssel hat.Erstellen von Hibernate Composite-Schlüssel mit Anmerkungen

Allerdings ist die Tatsache, dass 2 Felder dieser Tabelle zusammen in der Tabelle einzigartig sind. Wie kann ich dasselbe mit Hibernate Annotation erreichen ?. mein Code

hier ist ..

@Entity 
@Table(name = "RolesMenuItems") 
    public class RolesMenuItems { 

     @Column(name = "RoleID") 
     private String roleID; 

     @Column(name = "MenuItemID") 
     private String menuItemID; 
    /*setter getter methods */ 
} 

Antwort

55

können Sie @Embeddeble und @EmbeddedId verwenden, um einen zusammengesetzten Schlüssel erstellen und mit Ihrem Entity zuordnen. Zum Beispiel:

@Embeddable 
public class RolesMenu { 
    @Column(name = "RoleID") 
    private String roleID; 

    @Column(name = "MenuItemID") 
    private String menuItemID; 

    //getter, setter methods 
} 

@Entity 
@Table(name = "RolesMenuItems") 
public class RolesMenuItems { 

    @EmbeddedId 
    private RolesMenu roleMenu; 

    /*setter getter methods */ 
} 

Dann RolesMenuItems in Ihrem Java-Code verwenden Entitäten in gewohnter Weise fortbestehen.

Referenz: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e535

Edit: Um die Einheit bestehen bleiben:

RolesMenu roleMenu = new RolesMenu(); 
roleMenu.setRoleID(...); 
roleMenu.setMenuItemID(...); 

RolesMenuItems roleItem = new RolesMenuItems(); 
roleItem.setRoleMenu(roleMenu); 

em.persist(roleItem); 
+0

OK danken you..but Wie kann ich Werte für Rollen-ID einfügen und menuItemID..can Sie mir bitte sagen? ? – edaklij

+0

Die Antwort wurde aktualisiert. Sieh dir das an. –

+0

haben alle Getter Setter-Methoden in RolesMenu-Klasse? – edaklij

Verwandte Themen