Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用注释创建hibernate复合键_Hibernate_Hibernate Mapping_Hibernate Annotations_Queryover - Fatal编程技术网

如何使用注释创建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
自动递增。我想是的,我们能做到。