Как создать составной ключ hibernate с помощью аннотаций
Я пытаюсь использовать hibernate annotations
для вставки данных в MySQL database
таблица не имеет первичного ключа.
однако факт в том, что 2 поля этой таблицы вместе уникальны в таблице.как я могу достичь того же, используя аннотацию hibernate?.
вот мой код..
@Entity
@Table(name = "RolesMenuItems")
public class RolesMenuItems {
@Column(name = "RoleID")
private String roleID;
@Column(name = "MenuItemID")
private String menuItemID;
/*setter getter methods */
}
1 ответов
можно использовать @Embeddeble
и @EmbeddedId
создать составной ключ и сопоставить его с вашим лицом. Например:
@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 */
}
затем использовать RolesMenuItems
в вашем коде Java для сохранения сущностей обычным способом.
ссылка: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e535
Edit: Чтобы сохранить сущность:
RolesMenu roleMenu = new RolesMenu();
roleMenu.setRoleID(...);
roleMenu.setMenuItemID(...);
RolesMenuItems roleItem = new RolesMenuItems();
roleItem.setRoleMenu( roleMenu );
em.persist(roleItem);