[英]Problem with many to many relationship query JPA
我有 2 個具有多對多關系的User
和Role
實體。 我想獲取特定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();
}
我應該如何在 JPA 中編寫查詢?
首先,如果您使用 createNativeQuery,那么您將提供本機 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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.