gpt4 book ai didi

hibernate - 如何使用注释创建 hibernate 复合键

转载 作者:行者123 更新时间:2023-12-03 10:09:18 25 4
gpt4 key购买 nike

我正在尝试使用 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 */
}

最佳答案

您可以使用 @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);

关于hibernate - 如何使用注释创建 hibernate 复合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com