如何使用注释创建hibernate复合键
我正在尝试使用如何使用注释创建hibernate复合键,hibernate,hibernate-mapping,hibernate-annotations,queryover,Hibernate,Hibernate Mapping,Hibernate Annotations,Queryover,我正在尝试使用hibernate注释将数据插入到未定义主键的MySQL数据库表中 但是,事实是该表的两个字段在表中是唯一的。如何使用hibernate注释实现相同的效果 这是我的密码 @Entity @Table(name = "RolesMenuItems") public class RolesMenuItems { @Column(name = "RoleID") private String roleID; @Column(nam
hibernate注释
将数据插入到未定义主键的MySQL数据库
表中
但是,事实是该表的两个字段在表中是唯一的。如何使用hibernate注释实现相同的效果
这是我的密码
@Entity
@Table(name = "RolesMenuItems")
public class RolesMenuItems {
@Column(name = "RoleID")
private String roleID;
@Column(name = "MenuItemID")
private String menuItemID;
/*setter getter methods */
}
您可以使用
@embeddedeble
和@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 */
}
然后在Java代码中使用RolesMenuItems
,以通常的方式持久化实体
参考:
编辑:
要保留实体,请执行以下操作:
RolesMenu roleMenu = new RolesMenu();
roleMenu.setRoleID(...);
roleMenu.setMenuItemID(...);
RolesMenuItems roleItem = new RolesMenuItems();
roleItem.setRoleMenu( roleMenu );
em.persist(roleItem);
好的,谢谢。但是我如何为roleID和menuItemID插入值。你能告诉我吗?更新了答案。Pl看一看。RoleMenu类中有任何getter setter方法吗?如何为roleID、menuItemID指定列名?我们可以使用生成策略生成复合键吗?我的意思是
roleID
和menuItemID
自动递增。我想是的,我们能做到。