When your SQL queries become huge, spring-jpa-resource-query helps you to load them from resources folder. It makes your code clean and you can work with well-formed SQL queries in your IDE.
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/mcanatalay/spring-jpa-resource-query</url>
</repository>
</repositories>
OR
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
AND
<dependency>
<groupId>com.github.mcanatalay</groupId>
<artifactId>spring-jpa-resource-query</artifactId>
</dependency>
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
@Query(value = "classpath:select_top_users.sql")
List<User> findAll();
@Query(value = "classpath:select_user_by_id.sql")
User findById(int userId);
@Query(value = "classpath:select_user_by_name.sql")
User findByUsername(String username);
}