【发布时间】:2014-01-14 09:57:14
【问题描述】:
例如,我将此查询部分作为预定义的温度。
String temp = "select st from xxxx st where "
后面还有 if else 运算符。
if (c>v)temp += "yyy is null";
else temp += "yyy = 2";
Query query = em.createNativeQuery(temp);
堆栈跟踪异常:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
也许我做错了?
【问题讨论】:
-
如果某些表和架构是预定义的,并且 em 是 EntityManager
-
如果要在
WHERE子句中添加条件,则应使用AND。 -
做一个“本机”查询或 JPQL 查询,请下定决心;您当前创建了 JPQL,但作为本机调用。
-
对不起,作为一个初学者......其实哪种类型的查询都没有关系
-
如果“哪种类型的查询无关紧要”,那么请确定问题是针对哪一个,然后人们可以专注于该类型。如果这是本机的,那么您的查询应该是 SQL,因此请将您传入的 SQL 提供给“createNativeQuery”。与初学者或其他无关,请把问题定义清楚,然后你就会得到解决方案
标签: java sql hibernate jpa hql