gpt4 book ai didi

java - 我如何从使用 Hibernate Jpa 的多对多关系创建的关联表中获取结果

转载 作者:行者123 更新时间:2023-12-02 01:51:10 24 4
gpt4 key购买 nike

我对 Hibernate 非常陌生,对于任何基本错误感到抱歉,所以我有 2 个实体 User 和Establishment,并且我已经使用 Hibernate 将这些实体映射为 ManyToMany 关系,如下所示:

User.java 实体:

   @Entity
@Table
public class User extend AbstractEntity {

@Column(name = "name", length = 255, nullable = false, unique = true)
private String name;

@Column(name = "email", length = 120)
private String email;

@Column(name = "phone")
private String phone;

@ManyToMany
@JoinTable(name= "User_Establishment",
joinColumns = {@JoinColumn(name="user_id") },
inverseJoinColumns = {@JoinColumn(name="establishment_id") })
private List<Establishment> establishments;


public List<Establishment> getEstablishments() {
return establishments;
}

public void setEstablishment(List<Establishment> establishments) {
this.establishments= establishments;
}
}

和Establishment.java实体:

   @Entity
@Table
public class Establishment extend AbstractEntity{

@Column(name="nif", nullable=false, length=10)
private String nif;

@Column(name="code", nullable=false, length=11)
private String code;

@Column(name="name", nullable=false)
private String name;

@Column(name="address")
private String address;

@ManyToMany(mappedBy = "establishments")
private List<User> users;

public List<User> getUser() {
return users;
}

public void setUser(List<User> users) {
this.users= users;
}

}

两个实体都有一个 Id,它只是不存在,因为我扩展了一个具有这些值的抽象类。

它在数据库中创建了一个名为 User_Establishment 的表,如下所示:

|---------------------|------------------|
| user_id | establishment_id |
|---------------------|------------------|
| 12 | 34 |
|---------------------|------------------|

到目前为止一切顺利,我可以使用 setter 和 getter 在表中正确添加值。但现在我想使用 hibernate 查询来获取这些值,但我真的不知道该怎么做,因为当我尝试创建一个查询来访问存储库中的数据时,我不能,因为我没有存储库关联表。

因此,将 user_id 作为参数,我想要每个设施_id,以便从设施表中获取所有内容,并给出设施_id

有什么办法可以做到这一点吗?

谢谢。

最佳答案

存储库通常只是放置与持久性相关的逻辑的地方,除非您暗示其他内容,否则无需创建存储库。

每次查询用户或机构时,您都可以导航相应的关联并获取所需的数据,如下所示:

User user = entityManager.find(User.class, "SOMENAME");
user.getEstablishments(); // should give the related values`

关于java - 我如何从使用 Hibernate Jpa 的多对多关系创建的关联表中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52977028/

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