基本hibernate选择所有语法
我试图用hibernate从我的数据库中检索数据,但它不断抛出exception
2012-11-11 11:35:45,943 [main] ERROR com.storage.hibernate.DatabaseAccessRequestsImpl – 出现错误javax.persistence.PersistenceException:org.hibernate.exception.SQLGrammarException:无法执行查询
@Override public List requestPeriod() { List trades = null; EntityManager manager = emf.createEntityManager(); Query query = manager.createQuery("from trade"); try{ trades = query.getResultList(); } catch(PersistenceException e){ logger.error("there was an error " + e); } catch(SQLGrammarException e){ logger.error("there was an error " + e); } return trades; }
我猜测我使用的语法select all
是不正确的但是在环顾四周后我看不到另一种选择?
谢谢
它应该是"from Trade"
(大写T),因为Trade是映射类的名称。
请注意,在JPA中,QL SELECT
子句是必需的,根据: 10.2.1.1。 JPQL Select语句 :
select语句是一个由以下子句组成的字符串:
一个SELECT子句,它确定要选择的对象或值的类型;
FROM子句,它提供声明,指定应用查询的其他子句中指定的表达式的域;
[…]
在BNF语法中,select语句定义为:
select_statement ::= select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]
裸露from Trade
语法是特定于Hibernate的,为了符合规范,您应该始终使用:
select t from Trade t
- JSTL,Bean和方法调用
- 获取exceptionorg.apache.logging.slf4j.SLF4JLoggerContext无法强制转换为org.apache.logging.log4j.core.LoggerContext
- SQLException:违反协议。 Oracle JDBC驱动程序问题
- 在spring哪里可以捕获非rest控制器exception?
- Java – 应该在何处以及如何使用exception?
- 试图提示用户从catch块重新进入,但catch块终止了吗?
- 包com.sun.xml.internal.bind.v2.model.annotation不存在
- 是否可以忽略exception?
- Apache Hadoop setXIncludeAware UnsupportedOperationException