Spring Data mentions the nativeQuery property of the @Query annotation的文档,但是没有提及其优势:


  @Query批注允许通过将nativeQuery标志设置为true来运行本机查询,如以下示例所示:
  
  

public interface UserRepository extends JpaRepository<User, Long> {

 @Query(value = "SELECT * FROM USERS WHERE EMAIL_ADDRESS = ?1", nativeQuery = true)
 User findByEmailAddress(String emailAddress);
}



我找不到有关何时以及为何执行此操作的任何文档。使用nativeQuery = true有什么好处?

最佳答案

@Query注释具有nativeQuery = true参数时,该查询将不会被解析为JPQL。这可能会带来更好的性能,但是当您使用例如MySQL方言创建查询并尝试在MS SQL服务器上执行查询时,这样做很危险。

09-25 21:36