Làm cách nào để thực thi chiến lược tải chậm chỉ dành cho một NamedQuery cụ thể.JPA - Buộc tải Lười biếng chỉ cho một truy vấn nhất định
ví dụ: Xem xét các mã giả bên dưới (chỉ để giải thích các trường hợp) Tôi có một thực thể
@Entity
class Xyz {
int a;
int b;
@Fetch = EAGER
Set<ABC> listOfItems;
}
Trong trường hợp này, chúng tôi đã tuyên bố LISTOFITEMS là háo hức vời.
Giả sử, tôi có một số NamedQuery (query="getXyz" , name="select x from Xyz x where a=?")
Đối với truy vấn này, tôi chỉ cần kết quả là lười biếng, tức là tôi không muốn listOfItems được truy lục.
Những cách mà tôi có thể đạt được chúng là gì? ps: 1. Tôi không muốn thay đổi LISTOFITEMS là Lazy trong lớp Entity 2. Tôi không muốn chọn các lĩnh vực cụ thể trong truy vấn như name="select a,b from Xyz z where a = ? "
Cảm ơn trước những lời đề nghị
Bạn sẽ làm gì với kết quả của NamedQuery? Có thể có lựa chọn thay thế cho những gì bạn đang cố gắng đạt được. – siebz0r
@ siebz0r tôi chỉ muốn các trường cấp đầu tiên hiển thị. Trong khi đó có những màn hình khác, nơi có cần phải lấy bộ .. Trong trường hợp của tôi, tôi muốn cải thiện hiệu suất bằng cách không háo hức lấy chúng. Nếu bạn có bất cứ đề nghị, xin vui lòng chia sẻ. Cảm ơn ! –
Tôi khuyên bạn nên chú thích bộ này là lười. Tại sao điều này không thể? – siebz0r