繁体   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