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(" ", "") + "%"
)
我认为这是一个基本问题,但我正在努力寻找答案。
问题是:使用 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(" ", "") + "%"
)