在Springboot中编写一个非常长的 @query 的简洁方法

oxalkeyp  于 2023-03-02  发布在  Spring
关注(0)|答案(2)|浏览(154)

我在JPA repo函数的@query字段中有一个很长的sql原生查询。有没有一种干净的方法来编写查询,比如解析一个SQL文件并读取查询。

mfuanj7w

mfuanj7w1#

是的,您可以这样做。首先创建一个SQL文件与您的查询,并将该文件存储在资源文件夹。

src/main/resources/your_sqlfile.sql

在JpaRepository函数中,读取sql文件并使用classpath对象检索查询:
下面的代码,你可以遵循:

import org.springframework.core.io.ClassPathResource;

public List<YourEntity> findByCustomQuery() {
    Resource resource = new ClassPathResource("mycustomquery.sql");
    String query = null;
    try {
        query = Files.readString(resource.getFile().toPath());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
4xrmg8kj

4xrmg8kj2#

还可以使用命名查询并在Map文件中定义查询。

相关问题