Spring Data JPA Hibernate @QueryHints


另一個實例: http://leobluewing.iteye.com/blog/2032396 ;

 

本文內容來源:https://blog.csdn.net/gavinchen1985/article/details/81841687

jpa官方:https://docs.spring.io/spring-data/jpa/docs/2.0.9.RELEASE/reference/html/#jpa.query-hints

先解釋一下什么是Query Hint。參考Orcale官方文檔。默認情況下,@NameQuery或@NameNativeQuery完全按照查詢String指定的方式執行。使用@QueryHint注解指定供應商特定的JPA查詢擴展,以提高查詢性能和利用供應商的JPA持續性提供程序實現中的特定特性。

@QueryHing有兩個屬性,name和value。name指定提示名稱,value指定提示的值。如下例:

@Entity
@NamedQuery(
name="findAllEmployees",
query="SELECT * FROM EMPLOYEE WHERE MGR=1"
hints={@QueryHint={name="toplink.refresh", value="true"}})
public class Employee implements Serializable {
    ...
}

使用 @QueryHint 批注自定義查詢以利用由 TopLink Essentials 提供的供應商 JPA 擴展:在該示例中,提示確保在執行查詢時始終刷新 TopLink 緩存。

在repository接口中通過@QueryHints注解使用JPA 查詢提示。它提供了一組JPA @QueryHint注解外加一個布爾標識,默認禁止在分頁時需要調用的計數查詢上使用查詢提示,如下例:

public interface UserRepository extends Repository<User, Long> {
 
  @QueryHints(value = { @QueryHint(name = "name", value = "value")},
              forCounting = false)
  Page<User> findByLastname(String lastname, Pageable pageable);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM