加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JPA Like Integer的运算符

发布时间:2020-12-15 08:39:21 所属栏目:Java 来源:网络整理
导读:有人能告诉我,为什么这不起作用: criteria.add(cb.like((myentity.Integerget("integerid")).as(String.class),"2%")) 我收到以下错误: The object [2%],of class [class java.lang.String],from mapping [org.eclipse.persistence.mappings.DirectToField
有人能告诉我,为什么这不起作用:

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(),只支持Strings.有些数据库支持像整数一样,而有些数据库则不支持.

EclipseLink应允许在Integer中使用like()(假设您的数据库支持它).你用的是什么版本?可能需要使用> = 2.1.如果它在最新版本上失败,那么请记录一个错误.

您还可以使用“CHAR”,“TO_CHAR”或“CONVERT”函数将整数转换为字符串,具体取决于您的数据库.条件API支持函数()API来调用本机函数.

请注意,as()API不用于从Integer转换为String,而是用于转换为子类实体.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读