spring - JPA,为什么不替换 native 查询中的命名参数?

标签 spring parameters spring-data-jpa jpql

我尝试了索引和命名参数,但它不起作用:

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/

相关文章:

java - Spring-Data Jpa 继承 : Keeping Entity Id's in Children Entity

多种方法的 Spring JPA 事务

java - 了解 OAuth2 客户端凭据流

java - 无法 Autowiring ,存在不止一个 b​​ean 错误

c++ - 函数参数中的 A 和 A[] 有什么区别?

php - PDO 在重复 key 更新时插入

java - Spring Boot 测试未从 src/main/resources 获取 hbm.xml 文件

java - Tomcat 容器使用<error-page> 配置失败,如果响应对象的OutputStream 打开后出现异常

c - 用链表读取 C 中的输入

java - Spring数据JPA日志记录