当前位置: 首页 > 面试题库 >

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

钱均
2023-03-14
问题内容

我有一个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);
}


 类似资料:
  • 我有一个用于加载查询的项目: 在“SELECT_BY_USER_ID”上是一个普通的字符串查询。 我在jar之外有一个YML配置,我用来加载不同的配置,我也想使用这个YML来加载查询。 示例YML: 但是我不知道如何在@Query value中直接从我的文件加载,我尝试了一下: 我该怎么办?非常感谢。

  • 我一直在读关于资源过滤的文章,这是在这个问题中提到的。 该项目使用SpringBoot,当运行JUnit时,会抱怨:

  • 问题内容: 为了进行一些统计分析,我需要在Excel工作表的列中提取值。我一直在使用Apache POI包从Excel文件中读取数据,当需要迭代行时,它可以很好地工作。但是我找不到关于在API(链接文本)或通过Google搜索获取列的任何信息。 由于我需要获取不同列的最大值和最小值并使用这些值生成随机数,因此,无需选择单个列,唯一的选择是遍历行和列以获取值并一一比较。听起来不那么省时。 关于如何解

  • 我有问题,需要帮助。 问题是我正在尝试使用 jdbctemplate 和映射获取查询的结果,该结果导致我的 File 类。 我的类文件包含3O个属性:10个长、字符串和日期类型的属性。 我正在执行的查询: 当执行查询时,它不会给我一个错误,一切都是正确的,但是当显示结果时,列出来为空,错误是由于我使用的查询使用别名,别名与File类的属性名称不匹配。 这就是我的问题或查询,因为我不能更改类属性的名

  • 我创建了一个OpenNotepad.bat文件,其中包含文本说明并将其保存到我的桌面。我创建了一个Java类。我必须在cmd中键入什么才能从. bat文件中获取该文本? 我是否应该使用特定的命令来获取命令提示符以显示该文本? 这是我的Java代码: 我对此一无所知。我参考了本教程:使用运行时类从Java代码执行批处理文件