我有一个proyect用于加载查询:
@Query(value = SELECT_BY_USER_ID, nativeQuery = true) Employee findByUserId(@Param("userId") String userId);
在“ SELECT_BY_USER_ID”上是正常的字符串查询。
我在jar外部有一个YML配置,用于加载不同的配置,并且我也想使用此YML来加载查询。
示例YML:
file: query1: SELECT * FROM DUAL;
但是我不知道如何直接从@Query值中的文件中加载,我试图这样做:
@Query(value = ("${file.query1}"), nativeQuery = true) List<Employee> findByCost();
我能怎么做?谢谢。
如果您需要从资源文件夹中加载SQL,可以尝试使用spring-data- sqlfile库。它支持从资源加载SQL查询。因此,您只需要将SQL查询放入资源文件夹中,然后就可以在SqlFromResource批注中引用它们:
@Repository public interface UserRepository extends JpaRepository<User, Integer> { @SqlFromResource(path = "select_user_by_id.sql") User findById(int userId); }
输出将如下所示:
@Repository public interface UserRepositoryGenerated extends JpaRepository<User, Integer> { @Query( value = "SELECT * FROM users WHERE id = :userId", nativeQuery = true ) User findById(int userId); }