我有这两个 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/