tutorial - hibernate wiki



Comment créer une clé composite en hibernation à l'aide d'annotations (1)

Vous pouvez utiliser @Embeddeble et @EmbeddedId pour créer une clé composite et la mapper avec votre entité. Par exemple:

@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 */
 }

Utilisez ensuite RolesMenuItems dans votre code Java pour conserver les entités de la manière habituelle.

Référence: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e535

Edit: Pour persister l'entité:

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

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

em.persist(roleItem);

J'essaie d'utiliser hibernate annotations pour insérer des données dans une table de MySQL database qui n'a pas de clé primaire définie.

Cependant, le fait est que 2 champs de cette table sont uniques dans la table. Comment puis-je obtenir la même chose en utilisant une annotation d'hibernation?.

voici mon code ..

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

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

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




nhibernate-queryover