gpt4 book ai didi

java - 使用 OneToMany 关系为 3 个表创建 ORMapping

转载 作者:行者123 更新时间:2023-11-30 05:05:45 25 4
gpt4 key购买 nike

我有 3 个表:项目、用户和角色。现在我想要一个带有嵌入键 id_project、id_user 的表 Project2User2Role。

我在所有三个实体中尝试使用 @OneToMany 关系,但我认为我不能像那样构建它。

我还尝试自己构建一个 Project2User2Role 实体类,但我必须创建一个没有 @ManyToOne 关系的 idclass。

解决方案是什么样的?

最佳答案

reference manual表示您可以在嵌入式 ID 中嵌入关系:

While not supported in JPA, Hibernate lets you place your association directly in the embedded id component

因此,您应该定义一个 ID 类型为 Project2User2RoleId 的 Project2User2Role 实体:

@Entity
public class Project2User2Role {
@EmbeddedId
private Project2User2RoleId id;

public User getUser() {
return this.id.getUser();
}

public Project getProject() {
return this.id.getProject();
}

// ...
}

Project2User2RoleId 类如下所示:

@Embeddable 
public class Project2User2RoleId {
@ManyToOne(optional = false)
@JoinColumn(name = "project_id")
private Project project;

@ManyToOne(optional = false)
@JoinColumn(name = "user_id")
private User user;

@ManyToOne(optional = false)
@JoinColumn(name = "role_id")
private Role role;

// constructor
// getters
// equals and hashCode
}

关于java - 使用 OneToMany 关系为 3 个表创建 ORMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5143070/

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