当前位置: 首页 > 知识库问答 >
问题:

Hibernate-使用可嵌入的3路多对多

彭令秋
2023-03-14

实体(getter和setter等略):复合键实体

@Embeddable
public class GroupUserRolesID implements Serializable {

    @Column(name = "groupID")
    private Long groupID;

    @Column(name = "groupRoleID")
    private Long groupRoleID;
    
    @Column(name = "userID")
    private Long userID;
    
    private GroupUserRolesID() {}

    public GroupUserRolesID(Long groupRoleID, Long groupID, Long userID) {
        this.groupRoleID = groupRoleID;
        this.groupID = groupID;
        this.userID = userID;
    }

@Entity(name = "GroupUserRoles")
public class GroupUserRoles {

    @EmbeddedId
    private GroupUserRolesID id;

    @ManyToOne(fetch = FetchType.LAZY)
    @MapsId("groupRoleID")
    private GroupRole groupRole;

    @ManyToOne(fetch = FetchType.LAZY)
    @MapsId("groupID")
    private Group group;

    @ManyToOne(fetch = FetchType.LAZY)
    @MapsId("userID")
    private User user;

    public GroupUserRoles(GroupRole groupRole, Group group, User user) {
        this.groupRole = groupRole;
        this.group = group;
        this.user = user;
        this.id = new GroupUserRolesID(groupRole.getId(), group.getGroupID(), user.getUserId());
    }

用户实体

 @Entity
    public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long userID;

    @Column(name = "userHashedPassword")
    private String password;

    @Column(name = "userName")
    private String userName;
    @Column(name = "userEmail")
    private String email;

    @OneToMany(mappedBy = "user")
    private Set<GroupUserRoles> groupUserRoles = new HashSet<>();

暂时还没有答案

 类似资料:
  • 问题是一对多hibernate映射在这种json格式下不起作用。我认为这是一个逻辑错误,没有显示语法错误。 我的控制器是: 员工实体类为: 教育实体是: JSON输入: 一对多映射不适用于这种json格式。如何以json格式实现这种映射?请给我你有价值的建议。

  • 问题内容: 我想知道是否有可能在另一个Embeddable中包含Embeddable的ElementCollection? 这是我的供应商实体的示例,该实体具有可嵌入类型的地址列表: 这是我的可嵌入地址,其中包含可嵌入电话的列表 这是嵌入式电话的定义 我目前正在使用JPA 2 + Hibernate 3.6.x对此进行测试 在地址中使用嵌入式电话在我的测试中导致错误。这是最底层的部分调试消息: 删

  • 您好,我有多对多映射,在联接表中有额外的列。表结构如下所示。 关系如下 链接 我创建了如下POJO类 Vendor.java 学生。爪哇 测试。爪哇 供应商est.java 供应商学生测试PK。爪哇 Hibernate映射文件,如下所示 vendor.hbm.xml vendor\u student\u测试。hbm。xml 大学生hbm。xml 测验hbm。xml 我刚开始Hibernate,这是

  • EJB 3.0提供了将JAVA POJO(Plain Old Java Object)嵌入到实体bean中的选项,并允许使用嵌入式POJO类的方法映射列名。 要嵌入的Java POJO必须注释为@Embeddable。 @Embeddable public class Publisher implements Serializable{ private String name; pri

  • 问题内容: 我想要的是: 但是,您知道@Embeddable没有这样的属性。 有正确的方法吗?我不想要解决方法。 问题答案: 可嵌入组件(或复合元素,无论您想称呼它们)通常包含多个属性,因此被映射到多个列。因此,整个组件为null可以用不同的方式处理。J2EE规范没有规定一种方法。 如果所有组件的属性均为NULL,则Hibernate会将其视为NULL(反之亦然)。因此,您可以声明一个(任意)属性

  • 问题内容: 我正在使用Hibernate Envers来审核我的实体。但是我有一个问题。我想审核一个具有ManyToMany关系的实体。我发现存在一个@AuditJoinTable,但是我不知道它是如何工作的。有人可以举一个例子吗? 问题答案: 审核多对多关系应该可以在没有任何其他配置的情况下进行,前提是必须对关系的双方进行审核。 关于,注释用于指定联接表的自定义表名称。看到: http://do