3 回答

TA貢獻1900條經驗 獲得超5個贊
如果您需要從資源文件夾中加載 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);
}

TA貢獻1796條經驗 獲得超7個贊
不幸的是,spring 數據似乎不支持@Query anno 的直接屬性引用(如@Value)。盡管如此,假設您使用 spring-data-jpa 和 Hibernate,則可以使用外部 .xml 文件將您的查詢存儲為命名查詢,并通過方法名稱或類似方式引用它們
@Query(nativeQuery = true, name="Repository1.query1")
這是一篇關于這個問題的好文章:XML 文件中的 JPA 查詢,它描述了如何將 .xml 文件放在預期的 orm.xml 之外的其他地方
添加回答
舉報