jakarta-ee - org.hibernate.hql.internal.ast.QuerySyntaxException : Invalid path: '1.id'

标签 jakarta-ee jpa hql

我收到此错误,但我无法找出原因?任何人都可以帮助我吗?

文件:AnnonceDao.java

public List<AnnonceColocation> listeAnnonceColocation( UserEntity idUser ) {
    Query query = getEntityManger()
            .createQuery(
                    "from AnnonceColocation, Annonce where AnnonceColocation.id = Annonce.id and Annonce.annonceUser= :idUser" )
            .setParameter( "idUser", idUser );
    List<AnnonceColocation> annonceColocation = (List) query.getResultList();
    return annonceColocation;
}

文件:Annonce.java

@Entity
@Table( name = "annonce" )
@Inheritance( strategy = InheritanceType.JOINED )
public class Annonce extends BaseEntity {

// attribut
// getter&setter

  }

文件:AnnonceColocation.java

    @Entity
    @Table( name = "annonceColocation" )
    @PrimaryKeyJoinColumn( name = "ID" )
    public class AnnonceColocation extends Annonce {

          // attribut 
          // getter/setter
     }

最佳答案

为每个实体分配别名,并在查询中使用这些别名:

from AnnonceColocation ac, Annonce a where ac.id = a.id and a.annonceUser= :idUser

此外,此查询表明您正在使用其他实体的 ID,而不是使用实体之间的关联。这将使许多查询无法表达,并且会阻止您轻松导航到实体图中。阅读文档中有关关联的章节,并使用它们。

关于jakarta-ee - org.hibernate.hql.internal.ast.QuerySyntaxException : Invalid path: '1.id' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738869/

相关文章:

java - Hibernate查询问题

java - 当我们按 id 过滤列表时,如何使用 HQL 一对多查询关系

java - Hibernate 中可选的多对多关系

java - JBoss 5 截断 base64 cookie 字符串的尾随 =

java - 在 web.xml 中添加条件

java - Struts 2 文件上传给 NULL 指针

javax.persistence.TransactionRequiredException : No active transaction for PuId=

jpa - 获取影响特定对象的完整 Envers 修订

java - Hibernate ManyToMany 结果为笛卡尔积

java.lang.IllegalStateException : No data type for node AggregateNode: 'MAX' 错误