[英]Problem with many to many relationship query JPA
I have 2 entites User
and Role
with many to many relationship.我有 2 个具有多对多关系的User
和Role
实体。 I want to get role_id
for specific user_id
.我想获取特定user_id
role_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();
}
How should I write query in JPA?我应该如何在 JPA 中编写查询?
First if you use createNativeQuery then you'll supply a native SQL query.首先,如果您使用 createNativeQuery,那么您将提供本机 SQL 查询。 If you want to use JPQL use the createQuery如果要使用 JPQL,请使用 createQuery
To select the role_id by user id do要按用户 ID 选择 role_id,请执行以下操作
select role.id from Role role join role.users user where user.id=:p1
After that, you can do之后,你可以做
entityManager.createQuery("query").setParameter("p1", user.getId()).getResultList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.