如何使用原生 SQL 查询 Spring 存储库
How to query a Spring Repository with native SQL
我有一个简单的 React/Spring-Boot 应用程序可以创建和存储许可证。我正在尝试弄清楚如何将搜索功能整合到应用程序中。
基本概念是用户输入一个字符串并按下“搜索”按钮,这将触发对 Spring 中的 API 的查询 Boot:
license/search/{searchString}
查询将在多个不同的字段中搜索相同的字符串。例如
select * from licenses where company like "'%" + searchString + "%'" or product like "'%" + searchString + "%'" or etc...
如何使用 Spring 引导中的存储库对其进行编码?我已经创建了控制器存储库,但我需要知道如何创建查询。
编辑:这是当前存储库:
public interface LicenseRepository extends JpaRepository<License, Long>
{
License findByFullName(String fullName);
List<License> findAllByUserId(String id);
}
您当前尝试的查询对于查询方法而言可能过于复杂。相反,请考虑使用 @Query
注释:
@Query("SELECT l FROM License l WHERE l.company LIKE %:company% OR p.product LIKE %:product%")
List<Movie> searchByCompanyLikeOrProductLike(@Param("company") String company, @Param("product") String product);
我有一个简单的 React/Spring-Boot 应用程序可以创建和存储许可证。我正在尝试弄清楚如何将搜索功能整合到应用程序中。
基本概念是用户输入一个字符串并按下“搜索”按钮,这将触发对 Spring 中的 API 的查询 Boot:
license/search/{searchString}
查询将在多个不同的字段中搜索相同的字符串。例如
select * from licenses where company like "'%" + searchString + "%'" or product like "'%" + searchString + "%'" or etc...
如何使用 Spring 引导中的存储库对其进行编码?我已经创建了控制器存储库,但我需要知道如何创建查询。
编辑:这是当前存储库:
public interface LicenseRepository extends JpaRepository<License, Long>
{
License findByFullName(String fullName);
List<License> findAllByUserId(String id);
}
您当前尝试的查询对于查询方法而言可能过于复杂。相反,请考虑使用 @Query
注释:
@Query("SELECT l FROM License l WHERE l.company LIKE %:company% OR p.product LIKE %:product%")
List<Movie> searchByCompanyLikeOrProductLike(@Param("company") String company, @Param("product") String product);