当前位置: 首页 > 面试题库 >

具有整数的JPA Like运算符

沈子昂
2023-03-14
问题内容

有人可以告诉我,这为什么不起作用:

criteria.add(cb.like((myentity.<Integer>get("integerid")).as(String.class), "2%"))

我收到以下错误:

The object [2%], of class [class java.lang.String], from mapping [org.eclipse.persistence.mappings.DirectToFieldMapping[integerid-->MYENTITY.INTEGERID]] with descriptor [RelationalDescriptor(org.example.model.MyEntity --> [DatabaseTable(MYENTITY)])], could not be converted to [class java.lang.Integer]

myinteger为了可以使用like运算符,将模型的属性更改为字符串的唯一解决方案是吗?

BR


问题答案:

JPA不支持Integers的like(),仅支持字符串。一些数据库确实支持整数,而其他则不支持。

EclipseLink应该允许将like()与Integer一起使用(前提是您的数据库支持它)。您使用什么版本?可能需要使用> =
2.1。如果无法在最新版本上运行,请记录一个错误。

您还可以根据数据库的不同,使用“ CHAR”,“ TO_CHAR”或“ CONVERT”函数将整数转换为字符串。

请注意,as()API并非旨在从Integer转换为String,而是用于转换为子类实体。



 类似资料:
  • 在Java中,当使用整数对象而不是基元整数时,什么时候使用比较运算符(例如==、>=、<)是安全的? 印刷品 是否可以使用double equals以外的任何东西(所以>、<、>=和<=是安全的?),或者我应该使用.compareTo()方法?

  • 问题内容: Java中是否有指数运算符? 例如,如果提示用户输入两个数字,然后他们输入和,则正确答案为。 问题答案: 要通过用户输入执行此操作:

  • 3. 整数的加减运算 我们已经了解了计算机中正整数如何表示,加法如何计算,那么负数如何表示,减法又如何计算呢?本节讨论这些问题。为了书写方便,本节举的例子都用8个bit表示一个数,实际计算机做整数加减运算的操作数可以是8位、16位、32位甚至64位的。 3.1. Sign and Magnitude表示法 要用8个bit表示正数和负数,一种简单的想法是把最高位规定为符号位(Sign Bit),0表

  • 问题内容: 我正在使用jQuery 1.7.1 我刚刚开始使用JavaScript三元运算符替换简单的if / else语句。我已经在几个地方成功地做到了。当我确信可以成功完成其他工作时,我感到很惊讶,但是无论如何我还是尝试了。 这是原始语句: 这是使用三元运算符的相同功能: 我很惊讶,因为我看到的所有示例都只设置了这样的变量: 我的问题是这是否是“正常”使用,并且可以在大多数JavaScript

  • 问题内容: 有人可以向我解释为什么以下代码在Java中可以编译吗? 为什么这不等同于以下不编译的内容? Java语言规范(第3.10.1节)指出:“如果整数文字带有ASCII字母L或l(ell)后缀,则为类型;否则为(4.2.1节)。” 第4.2.2节提到“数值运算符,其结果是type 或。” 因此,据我所知,加法的结果应为,不能将其赋给变量。 但是,它可以很好地进行编译(至少在Sun JDK 1

  • 我正在尝试使用全局参数实现运算符new。如果new With args被重载没有问题,但是我在尝试编译时遇到以下错误 C:\bjarne_experise_6.cpp(14):错误C2084:函数“void*operator new(size_t,void*)throw()”已具有正文C:\Program Files\Microsoft visual studio 10.0\vc\include\