【问题标题】:QuerySyntaxException: Unexpected token * [duplicate]QuerySyntaxException:意外的令牌* [重复]
【发布时间】:2016-05-30 11:10:30
【问题描述】:

当我尝试使用 EntityManager 运行查询时出现以下错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: * near line 1, column 8

这可能是什么原因造成的?

代码:

public static void main(String [] args) {

        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myClass");

        EntityManager em = entityManagerFactory.createEntityManager();

        List<String> results= em.createQuery(
                "SELECT * FROM myClass ")
                .setMaxResults(10)
                .getResultList();

}

【问题讨论】:

  • JPQL != SQL。建议您在转储查询之前阅读基本的 JPA 文档

标签: java sql oracle hibernate jpa


【解决方案1】:

您不能在 HQL 中使用 * 运算符。您可以尝试如下:

List<String> results= em.createQuery(
                "SELECT myclass FROM myClass ")
                .setMaxResults(10)
                .getResultList();

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-04-17
    • 2019-05-07
    • 2021-09-05
    • 2019-06-24
    • 2019-05-14
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多