Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA标准构建器类似于双精度_Java_Jpa_Spring Data Jpa_Jpa Criteria - Fatal编程技术网

Java JPA标准构建器类似于双精度

Java JPA标准构建器类似于双精度,java,jpa,spring-data-jpa,jpa-criteria,Java,Jpa,Spring Data Jpa,Jpa Criteria,我正试图从遗留数据库中检索数据 表中的列定义为包含帐号的十进制(13,0) 无法更改列数据类型,因为它将对旧系统产生重大影响。基本上,所有使用该表的程序都需要更改,然后重新编译,这不是一个选项 我们要求查找帐号包含值的所有记录,例如,用户可以搜索12345,所有帐号包含12345的帐户都应返回 如果这是CHAR/VARCHAR,我会使用: criteriaBuilder.like(root.<String>get(Record_.accountNumber), searchTerm)

我正试图从遗留数据库中检索数据

表中的列定义为包含帐号的十进制(13,0)

无法更改列数据类型,因为它将对旧系统产生重大影响。基本上,所有使用该表的程序都需要更改,然后重新编译,这不是一个选项

我们要求查找帐号包含值的所有记录,例如,用户可以搜索12345,所有帐号包含12345的帐户都应返回

如果这是CHAR/VARCHAR,我会使用:

criteriaBuilder.like(root.<String>get(Record_.accountNumber), searchTerm)

我还没有真正尝试过这个,但我相信它应该会起作用

criteriaBuilder.like(
    root.get(Record_.accountNumber).as(String.class),
    searchTerm)
这将生成类似以下类型的查询:

SELECT * FROM ACCOUNTS WHERE CAST(accountNumber AS text) LIKE '%12345%'

也许见“谢谢你”恐怖蝙蝠。将尝试一下。谢谢@coladict,但criteriaBuilder.toString()需要表达式,传递时失败Expression@albert我在Hibernate中做了一些源代码追溯之后编辑了答案。无论原始表达式是什么,这都应该有效。
SELECT * FROM ACCOUNTS WHERE CAST(accountNumber AS text) LIKE '%12345%'