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

时间:2017-02-16 16:02:17

标签: java jpa compare criteria

我认为这是一个基本问题,但我很难得到答案。

问题是:使用CriteriaBuilder和谓词如何在不考虑中间空格的情况下比较字符串。例如:"CH 525 kV AREIA 1077 PR"CriteriaBuilder库中没有“替换”功能。

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

由于

1 个答案:

答案 0 :(得分:2)

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

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