为什么本机查询在接下来的第二个查询中不起作用?
Why native query is not working in following second query?
在这两种方法之间,第一种方法是用JPQL写下来的,第二种方法是在native query中。
1. @Query("select e from Meeting e where e.meetingName like %:query%" )
List<Meeting> findByJPQL(@Param("query") String query);
2. @Query( nativeQuery = true, value ="select * from meeting as m where m.meeting_name like '%':query'%'" )
List<Meeting> findByNativeQuery(@Param("query") String query);
第一个给出了正确的值,但是第二个没有,谁能告诉我们第二个查询中的问题是什么?
您根本不必转义 :query
参数。这在文档中有记录:
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query.advanced-like
@Query(nativeQuery = true, value ="select * from meeting as m where m.meeting_name like %:query%" )
List<Meeting> findByNativeQuery(@Param("query") String query);
本机查询的参数绑定使用用于绑定 JPQL 查询的类似代码。
其中 returns 个 static class LikeParameterBinding extends ParameterBinding
来自:
在这两种方法之间,第一种方法是用JPQL写下来的,第二种方法是在native query中。
1. @Query("select e from Meeting e where e.meetingName like %:query%" )
List<Meeting> findByJPQL(@Param("query") String query);
2. @Query( nativeQuery = true, value ="select * from meeting as m where m.meeting_name like '%':query'%'" )
List<Meeting> findByNativeQuery(@Param("query") String query);
第一个给出了正确的值,但是第二个没有,谁能告诉我们第二个查询中的问题是什么?
您根本不必转义 :query
参数。这在文档中有记录:
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query.advanced-like
@Query(nativeQuery = true, value ="select * from meeting as m where m.meeting_name like %:query%" )
List<Meeting> findByNativeQuery(@Param("query") String query);
本机查询的参数绑定使用用于绑定 JPQL 查询的类似代码。
其中 returns 个 static class LikeParameterBinding extends ParameterBinding
来自: