jpa 标准比较两个字符串而不考虑空格

jpa criteria compare two strings in without considering spaces

我认为这是一个基本问题,但我正在努力寻找答案。

问题是:使用 CriteriaBuilder 和 Predicate 如何在不考虑中间空格的情况下比较字符串。例如:"CH 525 kV AREIA 1077 PR"CriteriaBuilder 库中没有 "replace" 函数。

cb.like(equipamento.get(EquipamentoBO_.txNomeLongo), "%" + dto.getTxNomeEquipamento().toUpperCase().replace(" ", "") + "%")

谢谢

如果您使用 REPLACE 作为要使用的函数,有一个 function 方法应该可以解决问题:

cb.like(
          cb.function("REPLACE"
                 , String.class
                 , equipamento.get(EquipamentoBO_.txNomeLongo)
                 , cb.literal(" ")
                 , cb.literal(""))
          , "%" + dto.getTxNomeEquipamento().toUpperCase().replace(" ", "") + "%"
       )