J'essaie d'utiliser hibernate annotations
pour insérer des données dans un MySQL database
table qui n'a pas de clé primaire définie.
Cependant, le fait est que 2 champs de cette table ensemble sont uniques dans la table.Comment puis-je obtenir la même chose en utilisant l'annotation de mise en veille prolongée?.
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 */
}
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 */
}
Ensuite, utilisez RolesMenuItems
dans votre 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
Modifier: Pour conserver l'entité:
RolesMenu roleMenu = new RolesMenu();
roleMenu.setRoleID(...);
roleMenu.setMenuItemID(...);
RolesMenuItems roleItem = new RolesMenuItems();
roleItem.setRoleMenu( roleMenu );
em.persist(roleItem);