像条件在JPA @Query中不起作用

时间:2019-07-26 12:09:08

标签: java jpa spring-data-jpa

我使用的条件是JPA,我正面临问题。

@Query("select new com.tivo.extract.config.model.DTO(s.SourceId, s.SourceName, t.TvsourceLongName) from MyTelevisionSource t join fetch RCMSource s ON s.SourceId = t.SourceId where s.SourceId LIKE ?1% ")
List<DTO> findFilteredSourceList(String seachInput);

如果我像s.SourceId一样使用%?1% --> %searchInput% ->,则可以正常工作

但对于s.SourceId之类的?1% -> searchInput% ->来说,它不起作用

数据库中Long类型的

SourceId列。

我得到一个例外

Parameter value [021%] did not match expected type [java.lang.Long (n/a)]; 
nested exception is java.lang.IllegalArgumentException: 
Parameter value [021%] did not match expected type [java.lang.Long (n/a)]

1 个答案:

答案 0 :(得分:0)

尝试玩CONCAT

@Query("select new com.tivo.extract.config.model.DTO(s.SourceId, s.SourceName, t.TvsourceLongName)
        from MyTelevisionSource t join fetch RCMSource s ON s.SourceId = t.SourceId 
        where s.SourceId LIKE CONCAT(?1,'%') ")
    List<DTO> findFilteredSourceList(String seachInput);