我尝试了索引和命名参数,但它不起作用:
public interface CharacterRepository extends JpaRepository<Character, Long> {
@Query(nativeQuery=true, value="SELECT * FROM Character WHERE pinyin like '%:keyword%'")
List<Character> findByKeyword(@Param("keyword") String keyword);
}
输出的sql是:
休眠:
SELECT
*
FROM
Character
WHERE
pinyin like '%:keyword%'
为什么关键字占位符没有被我实际传递的参数替换?
最佳答案
您的查询应该是这样的 -
@Query(nativeQuery=true, value="SELECT * FROM Character c WHERE c.pinyin like %:keyword%")
List<Character> findByKeyword(@Param("keyword") String keyword);
希望它有所帮助。
关于spring - JPA,为什么不替换 native 查询中的命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54270857/