【问题标题】:Nested select statement with HQL带有 HQL 的嵌套选择语句
【发布时间】:2015-01-13 17:57:20
【问题描述】:

我想根据来自 ProjectPage 的两个表的不同 id 将表 Project 与表 ProjectPage 连接起来,我正在使用 HQL 并尝试了以下操作:

EntityManager em = entityManager();
TypedQuery<Project> q = em.createQuery("SELECT o FROM Project AS o inner join
      (SELECT DISTINCT  pp.id  from ProjectPage) pp" +
      "on o.id=pp.id WHERE LOWER(o.name) LIKE LOWER(:name) "+
      "and ( o.status is null or o.status != :status_val)", Project.class);

我收到以下错误:

ERROR org.hibernate.hql.internal.ast.ErrorCounter : unexpected token: (

我的查询有什么问题?

【问题讨论】:

  • 试试:"SELECT o FROM Project AS o inner join (SELECT DISTINCT pp.id from ProjectPage pp) ppid " + "on o.id=ppid WHERE LOWER(o.name) LIKE LOWER(:name) "+ "and ( o.status is null or o.status != :status_val) 你错过了内连接上 ProjectPage 的别名。

标签: sql hibernate hql nested-queries


【解决方案1】:

可能是select语句中的表别名?

SELECT o FROM Project AS o

你是说

SELECT o.* FROM Projects AS o

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多