【问题标题】:Syntax error in JPA queryJPA 查询中的语法错误
【发布时间】:2011-06-19 05:31:25
【问题描述】:

当我执行以下代码时

return entityManager
            .createQuery("select a from Article where a.slug = ?1", Article.class)
            .setParameter(1, slug)
            .getSingleResult();

我得到以下异常

java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: 
Exception Description: Syntax error parsing the query [select a from Article where a.slug = '?1'], line 1, column 22: syntax error at [where].
Internal Exception: MismatchedTokenException(77!=78)
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1328)

我将 JPA 2 与 EclipseLink 2.0.2 一起使用。

我的查询有什么问题?

【问题讨论】:

    标签: java orm jpa eclipselink jpql


    【解决方案1】:

    ...来自文章 a ...(缺少别名)

    【讨论】:

      【解决方案2】:

      嗯,答案已经给出了.. 但是我不喜欢 JPQL,你必须在实体名称后面加上一个标识符,但如果你的 from 子句确实只有一个实体,那就没有必要了。大多数时候,我也忘记输入那个不必要的标识符。 我希望我将上面的查询写如下;

      select * from Article where slug = ?1
      

      【讨论】:

        猜你喜欢
        • 2012-08-22
        • 1970-01-01
        • 1970-01-01
        • 2018-12-12
        • 2011-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多