2012-02-21 39 views
9

Tôi có thể sử dụng Bộ đệm truy vấn với JPA dữ liệu mùa xuân cho các phương pháp truy vấn tùy chỉnh của tôi như dưới đây.Làm thế nào để thêm QueryHints trên phương pháp JPA dữ liệu mùa xuân mặc định?

public interface CountryRepository extends JpaRepository<Country, String> { 
@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") }) 
Country findByCountryName(String countryName); 
@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") }) 
Country findByCountryCode(String countryCode); } 

Tuy nhiên, cách thêm @QueryHints trên các phương thức mẹ hiện có như findAll()?

Cảm ơn.

+0

@oliver -gierke, bạn có bất kỳ ý tưởng làm thế nào để đạt được điều này? –

+0

Tôi có cùng một vấn đề. Tôi đã cố gắng ghi đè chúng và thêm chú thích @QueryHint, nhưng chúng bị bỏ qua. –

+0

@ user791694, xem câu trả lời của sgp15 ở bên dưới http://stackoverflow.com/a/10876707/418439 –

Trả lời

3

findAll(), findOne() vv không phải là (các) truy vấn. Bất kỳ thông số kỹ thuật bộ nhớ đệm nào trên thực thể đều có hiệu lực trong các phương thức này.

Ví dụ,

@Cacheable 
@Entity 
public class User { 

} 
+0

Xem thêm liên quan [@Có thể cài đặt] (http://stackoverflow.com/a/3664293/418439) –

+0

Tôi có các thiết lập và cho findAll nó đi vào cơ sở dữ liệu. Có điều gì tôi cần phải bật không? –

+0

@ Cacheable dường như không có bất kỳ ảnh hưởng nào trên findAll(). Sự hiểu biết của tôi là findOne() được liên kết với "bộ nhớ cache cấp 2" nhưng findAll() được liên kết với "bộ nhớ cache truy vấn". Để cache findAll(), tôi đã ghi đè lên phương thức và thêm @ queryhints. –

1

Nguyên, không có sự hỗ trợ cho các chú thích gợi ý truy vấn trong các phương pháp CRUD mặc định, nhưng dường như nó Hass được cố định cho phiên bản 1.6M1:

https://jira.spring.io/browse/DATAJPA-173

Các vấn đề liên quan