【发布时间】:2021-07-06 12:51:35
【问题描述】:
您好,我正在尝试在“like”中使用参数,但是当我调用它会产生错误的方法时,我已经尝试了这些方法并且都产生错误
@Query(value = "SELECT * FROM BOOK l WHERE l.NAME LIKE LIKE '%'||:search||'%'", nativeQuery = true)
List<BookEntity> findByParam(@Param("search") String search);
错误:ORA-00936:缺少表达式
@Query(value = "SELECT * FROM BOOK l WHERE l.NAME LIKE %:search%", nativeQuery = true)
List<BookEntity> findByParam(@Param("search") String search);
错误:ORA-00911:无效字符
@Query(value = "SELECT * FROM BOOK l WHERE l.NAME LIKE CONCAT(CONCAT('%',:search),'%'), nativeQuery = true)
List<BookEntity> findByParam(@Param("search") String search);
错误:ORA-00904:“CHARLIE”:标识符无效
感谢您的帮助
【问题讨论】:
-
放弃查询并像
findByNameLike这样编写您的方法,Spring Data JPA 将为您完成一切。
标签: spring oracle spring-data-jpa