如何使用注释创建hibernate组合键 [英] How to create hibernate composite key using annotations
问题描述
我试图使用 hibernate annotations
将数据插入到 MySQL数据库
表中,该表没有主键定义。然而事实是这个表的2个字段在表中是唯一的,我可以使用hibernate注释来实现相同的功能吗?
这是我的代码..
@Entity
@Table(name =RolesMenuItems)
public class RolesMenuItems {
@Column(name =RoleID)
private String roleID;
@Column(name =MenuItemID)
private String menuItemID;
/ * setter getter methods * /
}
@Embeddeble
和 @EmbeddedId
创建一个组合键并将其与您的实体。例如: @Embeddable
public class RolesMenu {
@Column(name =RoleID)
私人字符串roleID;
@Column(name =MenuItemID)
private String menuItemID;
$ b $ // getter,setter方法
}
@Entity
@Table(name =RolesMenuItems)
public class RolesMenuItems {
@EmbeddedId
私人RolesMenu roleMenu;
setter getter methods
code>
然后在您的Java代码中使用 RolesMenuItems
以通常方式保存实体。
编辑:
坚持实体:
RolesMenu roleMenu = new RolesMenu();
roleMenu.setRoleID(...);
roleMenu.setMenuItemID(...);
RolesMenuItems roleItem = new RolesMenuItems();
roleItem.setRoleMenu(roleMenu);
em.persist(roleItem);
I am trying to use hibernate annotations
to insert data to a MySQL database
table which doesn't have a primary key defined.
However the fact is 2 fields of that table together are unique in the table.how can i achieve the same using hibernate annotation?.
here is my code..
@Entity
@Table(name = "RolesMenuItems")
public class RolesMenuItems {
@Column(name = "RoleID")
private String roleID;
@Column(name = "MenuItemID")
private String menuItemID;
/*setter getter methods */
}
You can use @Embeddeble
and @EmbeddedId
to create a composite key and map it with your Entity. For example:
@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 */
}
Then use RolesMenuItems
in your Java code to persist entities in usual way.
Reference: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e535
Edit: To persist the entity:
RolesMenu roleMenu = new RolesMenu();
roleMenu.setRoleID(...);
roleMenu.setMenuItemID(...);
RolesMenuItems roleItem = new RolesMenuItems();
roleItem.setRoleMenu( roleMenu );
em.persist(roleItem);
这篇关于如何使用注释创建hibernate组合键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!