当我执行以下代码时
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。
我的查询有什么问题?
答案 0 :(得分:8)
......来自文章a ...(缺少别名)
答案 1 :(得分:1)
嗯,答案已经给出了..但是我不喜欢JPQL,你必须在实体名称之后加上一个标识符,但如果你的from子句只有一个实体,则是不可能的。大多数时候,我也忘记了那个不必要的标识符。 我希望我能写下面的上述查询;
select * from Article where slug = ?1