Tôi đang sử dụng Hibernate 3.5.1 và EntityManager để lưu giữ dữ liệu (với JPA 2.0 và EHCache 1.5). Tôi có thể có được các truy vấn bằng đoạn mã sau:Trình quản lý đối tượng công khai HIbernate: Cách truy vấn bộ nhớ cache?
EntityManager em;
...
Query query = em.createQuery(...);
...
Bây giờ, vấn đề là createQuery EntityManager của() phương thức trả về javax.persistence.Query đó, không giống như org.hibernate.Query (được trả về bởi createQuery của SessionFactory() method), không có phương thức org.hibernate.Query.setCacheable().
Tôi làm cách nào để lưu trữ truy vấn bằng EntityManager (hoặc một số phần khác của Hibernate)?
Cảm ơn các gợi ý. Tôi sẽ sử dụng "chuỗi ma thuật cụ thể của nhà cung cấp" với chuỗi được nhập từ lớp chủ sở hữu liên tục (như HibernateHintConstants), sẽ đảm bảo rằng lỗi biên dịch được tạo nếu tôi xóa Hibernate (miễn là tôi nhớ xóa lớp đó) để gợi ý Hibernate cụ thể). – eold
@leden - Các chuỗi đã có trong org.hibernate.ejb.QueryHints, để tránh phát minh lại bánh xe. – OrangeDog
Bạn cũng có thể thêm gợi ý trong chú thích @NamedQuery – OrangeDog