java - JPQL查询错误- hibernate 多对多关系

标签 java hibernate jpql

我想打印所有“Cuentas?”其客户端名称为“Paco”: 我有这个实体:

public class Cuenta implements Serializable{

    private static final long serialVersionUID = 1L;    

    @ManyToMany(mappedBy = "cuentasC",fetch = FetchType.LAZY)
    private Set<Cliente> clientesC = new HashSet<Cliente>();
}

@Entity(name = "CLIENTE")
public class Cliente implements Serializable{

    @Column(name = "Nombre", length = 30, nullable = false)
    private String Nombre_C;

    @ManyToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
    private Set<Cuenta> cuentasC = new HashSet<Cuenta>();
}

我的查询收到此错误:

String q = "select c FROM CUENTA c, IN (cuentas.clientesC) cli "+"WHERE CLIENTE cli.Nombre = 'Paco' ";
Query query = em.createQuery(q);
List<Cuenta> resultado = query.getResultList();
System.out.println(resultado.toString());

显示此错误,我无法找到错误的原因:

unexpected token: cli near line 1, column 76 [select c FROM entidades.Cuenta c, IN (cuentas.clientesC) cli WHERE CLIENTE cli.Nombre = 'Paco' ]
unexpected token: cli near line 1, column 76 [select c FROM entidades.Cuenta c, IN (cuentas.clientesC) cli WHERE CLIENTE cli.Nombre = 'Paco' ]

可能是语法错误?可能是关系方向有问题?

最佳答案

已解决并升级: 选择 Saldo 大于 10 且“CLIENTE.name” = 'Paco' 的所有“CUENTA”

String q = "select c FROM CUENTA c, IN (c.clientesC) clientesC "
                    +"WHERE clientesC.Nombre_C = 'Paco' AND c.Saldo > 10";

关于java - JPQL查询错误- hibernate 多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57427858/

相关文章:

java - 从电话中获取一些联系信息数据

java - 将字符串日期转换为日期对象时值错误

java - 如何将 TIMESTAMP 列映射到 ZonedDateTime JPA 实体属性?

Hibernate 记录太多信息

java - android volley json解析器错误

java - 如何在hibernate注释中删除带有父键的子表记录?

java - Spring Data JPA 是否有 "member of"的命名约定?

java - JPQL按纬度和经度获取最近的记录

java - Kundera for Cassandra - 按行键删除记录

Java 子字符串和数组