java - 使用spring在数据库上按参数搜索

标签 java database spring

我有这两个 ID,ID_A 和 ID_B。

我想做的是根据这两个 id 进行搜索,但用户不需要两个输入。

比如我有两个输入框供用户输入ID_A和ID_B。

当使用 ID_A 搜索对象时,我希望我的查询忽略我的 ID_B(将其设置为默认值 - NOT NULL)。在数据库上可以使用通配符“%”来做到这一点,但我不知道在 Spring 该怎么做。两个 ID 都是 BigDecimals。

我试过

if(ID_A==null)
substituteParmeter(ID_A)

替代参数方法将某个参数的当前值更改为通配符'%'。但是在执行此查询时:

Select t from Table t where t.ID_A like :id_a and t.ID_B like :id_b

如果 id_a 或 id_b 是“%”,程序会发现发现“%”的错误,它应该是一个 bigDecimal。

我怎样才能解决这个错误?

谢谢。

最佳答案

您可以像这样使用查询:

Select t from Table t where :id_a  is null or t.ID_A  like :id_a and  :id_b is null or t.ID_B like :id_b  

希望对你有用。

关于java - 使用spring在数据库上按参数搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344221/

相关文章:

java - 是否可以使用参数化泛型内部类?

mysql - 警告 : mysqli_connect(): (28000/1045): Access denied for

android - 如何用新的 sqlite 文件替换 sqlite 文件?安卓

spring - 在 Spring Security 中使用 Spring-boot-starter 混合 HttpBasic 和 FormLogin

java - mariadb: jdbc: setTimestamp 截断毫秒

java - 如何在没有转换器异常的情况下将 servlet 写入同步到公共(public) xml 文件资源

database - DDL 和 VDL 的区别

java - 为什么 ConfigurationProperties 类中的嵌套类需要是静态的?

java - @enablesns @enablesqs 注解有什么作用(spring cloud aws)?

java - system.out 之后的 hibernate 代理对象