【问题标题】:org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: '1.id'org.hibernate.hql.internal.ast.QuerySyntaxException:无效路径:'1.id'
【发布时间】:2014-05-19 13:19:41
【问题描述】:

我收到此错误但我不知道原因?任何人都可以帮助我吗?

文件: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
     }

【问题讨论】:

    标签: jakarta-ee jpa hql


    【解决方案1】:

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

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

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

    【讨论】:

    • @user3356300 不仅要口头感谢,还要在有帮助的情况下点赞并将答案标记为已接受。
    猜你喜欢
    • 2018-08-11
    • 2016-12-24
    • 2020-12-02
    • 2021-02-22
    • 2020-08-23
    • 2016-01-13
    • 2019-12-21
    • 2017-03-04
    • 1970-01-01
    相关资源
    最近更新 更多