在Spring引导中使用':'编写JPQL查询作为查询字符串的一部分

时间:2018-04-08 16:20:53

标签: java spring-boot jpql

我必须在spring boot中编写一个JPQL查询,它等同于下面的查询。

QUERY:

SELECT * FROM flow.logs where feature_id like '%|data:6789%';

我做的JPQL查询:

@Query("SELECT logs FROM Logs logs WHERE logs.featureId like '%|data\\: :data%'")
    public List<Logs> getLogsByStationId(@Param("data")Integer data);

查询无效,并提供以下异常: Unknown parameter position: 1; nested exception is java.lang.IllegalArgumentException: Unknown parameter position: 1

任何人都可以告诉我我的代码有什么问题。

1 个答案:

答案 0 :(得分:2)

您可以使用 CONCAT 功能,如下所示:

@Query("SELECT logs FROM Logs logs WHERE "
        + "logs.featureId like CONCAT('%|data:', :data, '%')")