当前位置: 首页 > 知识库问答 >
问题:

JPA更改查询参数时非常奇怪的错误

阎冠玉
2023-03-14

我在这个查询中遇到了一个奇怪的问题。代码:

em2=getNewEntityManager();
(...)
Query query2 = em2.createNativeQuery("SELECT DISTINCT ID_ZONA FROM VWG_REL_USUARIOS_ZONAS WHERE DNI like '"+dni+"'") ;
                List <Long> permisos = query2.getResultList();
(...)

如果我在SQL developer中复制上面的精确查询,它就像魔法一样有效。我试过用“Createquery”来处理实体和所有的东西,同样的错误。

多谢

共有1个答案

柯新翰
2023-03-14

尝试将值赋给参数,例如:

String dni = "some value";
Query query2 = em2.createNativeQuery("SELECT DISTINCT ID_ZONA FROM VWG_REL_USUARIOS_ZONAS WHERE DNI like :param") ;
query2.setParamter("param", dni);
List <Long> permisos = query2.getResultList();

更新:在EclipseLink中,只支持索引参数,不支持命名参数。

 类似资料:
  • 问题内容: 为什么简单地更新此表以添加列需要一个多小时?该表有1500万行。它具有2个索引和一个键主键。ALTER TABLE查询现在已处于“复制到tmp表”状态1小时15分钟。 表: 问题答案: 对于非常大的表,MySQL的ALTER TABLE性能可能会成为问题。MySQL通过创建一个具有所需新结构的空表,将旧表中的所有数据插入新表中,然后删除旧表来执行大多数更改。这可能会花费很长的时间,特别

  • 我有一个疑问 但是在使用hibernate执行查询时,我收到 org.hibernate.QueryParameterException:无法定位命名参数[age] 怎么了?

  • 我正在将我们的后端数据库从mysql迁移到postgres,并且正在迁移所有旧的查询/函数。其中大多数都是琐碎的,但今天我遇到了一个让我抓狂的问题。这里是: 我知道Postgres没有group_concat,应该使用array_agg。我的问题是我不知道到底发生了什么——这个查询是很久以前由不再和我们在一起的人写的。此外,Postgres中缺少IF语句也增加了这一困难。如果有人能够提供反馈或建议

  • 我调用下面的方法来计算一些值。我提供agencyID和月份的整数表示来执行计算。 等等...直到我到达12月(值12)。然而,当我到达5月(月值5)时,代码给出了一个运行时错误。然而,奇怪的是这个错误被抛出 在我的查询中,我没有在查询中的任何位置包含shift\u dayId,如下所示: 我恳请帮助我确定为什么givenMonth在值大于4时抛出运行时异常。 谢谢你 编辑 这是我要求的ShiftD

  • 问题内容: 我正在尝试在节点中使用Express,安装一切正常,进行编译,获取npm并通过以下方式安装express: npm安装快递 问题是,每次我尝试“要求”它时,都会给我一个错误!看一下一个简单的文件app.js: 当我运行它时: 有人能帮我吗?为什么会出现此错误?如何安装与Express不同的版本? 问题答案: 问题是,你可能有最新的连接(而不是“您需要安装最新的连接”)的命令@Shrip

  • 问题内容: 如果我在SQL Server Express 2008上运行此查询: 它将日期存储为2011年4月11日 我该如何预防呢? 问题答案: 使用ISO-8601格式:(或)-无论您使用哪种SQL Server语言和区域设置,它始终有效。 SQL Server中的日期 不 以任何特定的面向字符串的格式存储-日期即是日期即是日期,无论您看到什么。 您会看到日期的字符串表示形式-但又一次:日期