Java 在Spring boot中使用“:”作为查询字符串的一部分编写JPQL查询

Java 在Spring boot中使用“:”作为查询字符串的一部分编写JPQL查询,java,spring-boot,jpql,Java,Spring Boot,Jpql,我必须在spring boot中编写一个JPQL查询,它与下面的查询等价 查询: 我进行的JPQL查询: 查询不起作用,出现以下异常: 未知参数位置:1;嵌套异常为java.lang.IllegalArgumentException:未知参数位置:1 有人能告诉我我的代码有什么问题吗。您可以像这样使用CONCAT函数: @Query("SELECT logs FROM Logs logs WHERE " + "logs.featureId like CONCAT('%|data:

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

查询:

我进行的JPQL查询:

查询不起作用,出现以下异常: 未知参数位置:1;嵌套异常为java.lang.IllegalArgumentException:未知参数位置:1

有人能告诉我我的代码有什么问题吗。

您可以像这样使用CONCAT函数:

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

您还可以使用@Queryvalue=normalsql查询,nativeQuery=true来避免that@Frank:这不起作用。您正在使用spring数据jpa吗?如果是,请查看以下内容并尝试以下操作:@QuerySELECT logs FROM logs logs WHERE logs.featureId类似“%$data\ \:?1%”公共列表GetLogsByStationId集成器数据;您可以使用spring JPA存储库的命名约定来摆脱@Query:public List getLogsByStationIdContainingInteger数据;
@Query("SELECT logs FROM Logs logs WHERE logs.featureId like '%|data\\: :data%'")
    public List<Logs> getLogsByStationId(@Param("data")Integer data);
@Query("SELECT logs FROM Logs logs WHERE "
        + "logs.featureId like CONCAT('%|data:', :data, '%')")