java - 多对多连接表的 JPQL 查询

标签 java jpa many-to-many jpql

我有 2 个具有多对多关系的实体 User 和 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;
    }

enter image description here

最佳答案

从帐户库加入用户实体

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

关于java - 多对多连接表的 JPQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59121958/

相关文章:

Java 11 SpringBoot应用程序部署在TomEE 7.1.0服务器上时出现错误

java - Spring Data 有条件地获取 child

java - 将 jpa bean 绑定(bind)到可取消表单的正确方法是什么?

Django 表单 save_m2m

java - 将 JSON 对象转换为 Map 对象

删除尾随逗号期间正则表达式模式中的 Java 语法错误

java - SQL JPA - 多列作为主键

c# - 具有多对多不加载集合属性的实体

c# - EF 中多对多连接的最佳实践

java - 错误 StatusLogger Log4j2 找不到日志记录实现