我得到这个例外:
org.hibernate.QueryException: Not all named parameters have been set: [dua_num] [SELECT rev FROM DUA_AUD WHERE dua_num = :dua_num SELECT rev FROM DUA_DATA_FIL_AUD WHERE dua_num = :dua_num1]
at org.hibernate.internal.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:401)
at org.hibernate.internal.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:195)
at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:134)
at com.envers.EnversTest.getAllRevisions(EnversTest.java:249)
at com.envers.EnversTest.main(EnversTest.java:56)
Java方法
public void getAllRevisions() {
Session session = factory.openSession();
Transaction tx = null;
try {
String sql = "SELECT rev FROM DUA_AUD WHERE dua_num = :dua_num"
+ "SELECT rev FROM DUA_DATA_FIL_AUD WHERE dua_num = :dua_num1"
+ "union all"
+ "SELECT rev FROM DUA_STUS_AUD where DWHERE dua_num = :dua_num2"
+ "union all"
+ "SELECT rev FROM DATA_PYMT_AUD where WHERE dua_num = :dua_num3"
+ "union all"
+ "SELECT rev FROM DUA_SPLMT_DOC_AUD where WHERE dua_num = :dua_num4"
+ "union all"
+ "SELECT rev FROM ORG_PRTNRSHP_AUD where WHERE dua_num = :dua_num5";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("dua_num1", 1);
query.setParameter("dua_num2", 1);
query.setParameter("dua_num3", 1);
query.setParameter("dua_num4", 1);
query.setParameter("dua_num5", 1);
List<Number> results = query.list();
for (Number number : results) {
System.out.println("Results: " + number);
}
} catch (HibernateException e) {
e.printStackTrace();
}
}
我在sql查询中看到两个错误:(1)在第一行和第二行之间省略了“union all”(2)第一行中的第一个参数“dua_num”未设置
我正在jpa中设置本机查询,但它没有按预期运行并给我异常这是我的查询:
我在JPA 2.0中发现了非常奇怪的行为 我正在尝试构建一个看起来像这样的查询,其中 employeId 和 empDepartment 是通过 java 参数传递的长值。 但是上面的查询第一次不工作,它产生了上面的错误,但是当我第二次再次触发相同的方法时,一切都很顺利,每次都是这样,这是什么原因呢?
我使用PostgreSQL和hibernate 我有这个功能: 运行我的项目后 我有这个错误: 当我运行这个查询时: 从decision中选择max(null(split_part(num_ordre_decision),“/”,3),”::int) 在数据库中我有正确的结果 例如,与数据库中的此类数据相关: 我有 1001 但我的问题和冬眠有关
问题内容: 我想执行一个简单的本机查询,但是它不起作用: 为什么会出现此异常? 问题答案: JPA在本机查询中不支持命名参数,仅对于JPQL。您必须使用位置参数。 命名参数遵循第4.4.1节中定义的标识符规则。命名参数的使用适用于Java Persistence查询语言,而不是为本机查询定义的。 仅位置参数绑定可用于本机查询。 所以用这个 尽管JPA规范在本机查询中不支持命名参数,但某些JPA实现
为什么我会得到这个例外?
问题内容: 我想执行一个简单的本机查询,但是不起作用: 为什么会出现此异常? 问题答案: JPA在本机查询中不支持命名参数,仅对于JPQL。您必须使用位置参数。 命名参数遵循第4.4.1节中定义的标识符规则。命名参数的使用适用于Java Persistence查询语言,而不是为本机查询定义的。 仅位置参数绑定可用于本机查询。 所以用这个 尽管JPA规范在本机查询中不支持命名参数,但某些JPA实现(