簡體   English   中英

多對多關系查詢JPA的問題

[英]Problem with many to many relationship query JPA

我有 2 個具有多對多關系的UserRole實體。 我想獲取特定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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM