首页 > 解决方案 > JPQL查询多对多连接表

问题描述

我有 2 个实体用户和 AccountBase 具有多对多关系。我需要从连接表中选择具有选定用户 ID 的所有 AccountBase 对象。我尝试了一些连接查询,但不起作用。

    @Table(name = "ACCOUNT")
    @DiscriminatorColumn(name = "ACCOUNT_TYPE", length = 1)
    public abstract class AccountBase extends ModelBase {

        protected double balance;
        protected List<User> users = new ArrayList<>();
@Table(name = "USER_ACCOUNT")
public class User extends ModelBase implements Serializable {
    private static final long serialVersionUID = 1L;

    protected String name;
    protected List<AccountBase> bankAccounts = new ArrayList<>();

// bi-directional many-to-many association to AccountBase
    @ManyToMany
    @JoinTable(name = "USER_ACCOUNT_ACCOUNT", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = {
            @JoinColumn(name = "ACCOUNT_ID") })
    public List<AccountBase> getBankAccounts() {
        return this.bankAccounts;
    }

在此处输入图像描述

标签: javajpamany-to-manyjpql

解决方案


从帐户库加入用户实体

select account from AccountBase account join account.users user where user.id=? 

推荐阅读