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
服务器上执行查询时,这样做很危险。