在本机查询中设置搜索值
Set search value in native query
我有这个 Spring JPA 本机查询:
@Query (value =
"SELECT d.id AS id...........
"FROM deals_new d " +
"WHERE ( " +
" e.first_name LIKE '%:param%' " +
" OR e.last_name LIKE '%:param%' " +
") " +
"OFFSET :offset " +
"LIMIT :limit ",
nativeQuery = true)
List<ResultDTO> getHistory(
@Param("param") String username,
@Param("offset") int offset,
@Param("limit") int limit);
设置搜索参数的正确方法是什么?正如您现在看到的那样,它是硬编码的并且设置不当。你能告诉我正确的方法是什么吗?
使用命名占位符,例如 ?1
、?2
等,
e.first_name LIKE CONCAT('%', ?1, '%')
我有这个 Spring JPA 本机查询:
@Query (value =
"SELECT d.id AS id...........
"FROM deals_new d " +
"WHERE ( " +
" e.first_name LIKE '%:param%' " +
" OR e.last_name LIKE '%:param%' " +
") " +
"OFFSET :offset " +
"LIMIT :limit ",
nativeQuery = true)
List<ResultDTO> getHistory(
@Param("param") String username,
@Param("offset") int offset,
@Param("limit") int limit);
设置搜索参数的正确方法是什么?正如您现在看到的那样,它是硬编码的并且设置不当。你能告诉我正确的方法是什么吗?
使用命名占位符,例如 ?1
、?2
等,
e.first_name LIKE CONCAT('%', ?1, '%')