gpt4 book ai didi

java - 使用 @Query 从 SPRING BOOT 中的文件获取查询

转载 作者:行者123 更新时间:2023-12-01 19:47:28 26 4
gpt4 key购买 nike

我有一个用于加载查询的项目:

@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);
}

关于java - 使用 @Query 从 SPRING BOOT 中的文件获取查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52661804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com