相关疑难解决方法(0)

JPQL:将Long转换为String以执行LIKE搜索

我有以下JPQL查询:

SELECT il
FROM InsiderList il
WHERE ( il.deleteFlag IS NULL OR il.deleteFlag = '0' )
  AND il.clientId = :clientId
  AND (    LOWER( il.name ) LIKE :searchTerm
        OR il.nbr LIKE :searchTerm
        OR LOWER( il.type ) LIKE :searchTerm
        OR LOWER( il.description ) LIKE :searchTerm )
Run Code Online (Sandbox Code Playgroud)

客户希望我们能够搜索该nbr字段,这是一个java.lang.Long.

:

如何java.lang.Long使用JPQL 执行LIKE搜索?

java jpa jpql long-integer sql-like

9
推荐指数
1
解决办法
8101
查看次数

JPA CriteriaBuilder喜欢双倍

我正在尝试从遗留数据库中检索数据.

表中的列定义为包含帐号的DECIMAL(13,0).

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

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

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

criteriaBuilder.like(root.<String>get(Record_.accountNumber), searchTerm)
Run Code Online (Sandbox Code Playgroud)

作为定义为DECIMAL(13,0)的列的结果,accountNumber属性是double.

有没有办法在DECIMAL/double字段上执行类似的操作?

SQL会是

SELECT * FROM ACCOUNTS WHERE accountNumber LIKE '%12345%'
Run Code Online (Sandbox Code Playgroud)

java jpa spring-data-jpa jpa-criteria

1
推荐指数
1
解决办法
728
查看次数