2017-03-28 60 views
3

此问题涉及Spring Data JPA。Spring @Query with Lower和Wildcards

我需要一个(本地)@Query与低级函数和通配符。 但我没有得到它的工作。

这里是什么,我要寻找一个过分简单化的版本:

@Query(value = "SELECT * FROM CAR c WHERE LOWER(c.model) LIKE LOWER(%:model%)", nativeQuery = true) 
List<Car> findByModelMatching(@Param("model") String model); 

下限(%:模型%) - >不工作! LOWER(:model) - >正常工作!

我知道,这样的查询可以很容易地重新写为:

List<Car> findByModelContainingIgnoreCase(String model); 

但我不是在寻找一个命名查询。

我的问题是:如何在@Query中将LOWER(甚至是UPPER)与WildCards结合使用!

干杯

回答

2

LOWER函数接受字符串,你应该写LOWER('%' || :model || '%'),如果你是在Oracle为例。

+0

谢谢galovics!奇迹般有效! – Dachstein

+0

我很高兴能帮上忙。请接受答案,因为其他人可能会从中受益。 – galovics