首页 > 解决方案 > 使用弹簧在数据库上搜索参数

问题描述

我有这两个 ID,ID_A 和 ID_B。

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

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

使用 ID_A 搜索对象时,我希望我的查询忽略我的 ID_B(使其默认为非空)。在数据库上可以使用通配符 '%' 做到这一点,但我不知道如何在春天做到这一点。两个 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。

我怎样才能绕过错误?

谢谢。

标签: javadatabasespring

解决方案


您可以使用如下查询:

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  

希望这对你有用。


推荐阅读