首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Hibernate中获取结果集

如何在Hibernate中获取结果集
EN

Stack Overflow用户
提问于 2018-06-28 06:05:42
回答 1查看 699关注 0票数 0

我正在尝试在hibernate中执行以下操作:

代码语言:javascript
复制
Session session2 = HibernateUtil.getSessionFactory().openSession();
List<TitleEntity> tt = session2.createQuery(
  "select * from title where url = 'http://google.com'
").getResultList();

但是,我得到以下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from title where url = 'http://google.com']
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:133)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:164)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:670)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:103)

SELECT *作为结果集的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-06-28 06:09:02

在HQL中,您不需要指定*字符,实际上,除非您希望只返回查询的一部分,否则不需要指定select。此外,您还需要特别引用实体名称。因此删除select *并更新实体名称可以修复您的查询:

代码语言:javascript
复制
from TitleEntity where url = 'http://google.com'

该错误指示第8列是罪魁祸首,这直接表明查询的*字符。

参考:https://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/queryhql.html#queryhql-select

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51072072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档