Как создать составной ключ 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
Редактировать: Чтобы сохранить сущность:
RolesMenu roleMenu = new RolesMenu(); roleMenu.setRoleID(...); roleMenu.setMenuItemID(...); RolesMenuItems roleItem = new RolesMenuItems(); roleItem.setRoleMenu( roleMenu ); em.persist(roleItem);