使用@Query时将'nativeQuery'设置为'true'有什么好处?

时间:2019-11-25 13:27:22

标签: java spring jpa spring-data-jpa

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有什么好处?

1 个答案:

答案 0 :(得分:2)

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