gpt4 book ai didi

java - JPA多对多关系查询问题

转载 作者:行者123 更新时间:2023-12-02 09:13:52 29 4
gpt4 key购买 nike

我有两个具有多对多关系的实体UserRole。我想获取特定 user_idrole_id

@Entity
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

@ManyToMany
private Set<Role> roles;
}

@Entity
@Table(name = "role")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String name;

@ManyToMany(mappedBy = "roles")
private Set<User> users;
}

@Override
public List<Long> getUserRole(User user) {
return entityManager.createNativeQuery("??????").getResultList();
}

我应该如何在 JPA 中编写查询?

最佳答案

首先,如果您使用 createNativeQuery,那么您将提供一个 native SQL 查询。如果您想使用 JPQL,请使用 createQuery

要按用户 ID 选择 role_id

select role.id from Role role join role.users user where user.id=:p1

之后就可以了

entityManager.createQuery("query").setParameter("p1", user.getId()).getResultList();

关于java - JPA多对多关系查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59164796/

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