Chú thích @BatchSize của hibernate cho phép tìm nạp theo đợt các thực thể lười tải. Ví dụ. nếu tôi có một cái gì đó như:Tại sao tôi không sử dụng @BatchSize trên mọi mối quan hệ tải kém?
public class Product {
@OneToMany(fetchType=LAZY)
@BatchSize(size=10)
private ProductCategory category;
}
Bây giờ nếu tôi nhận được các chủng loại sản phẩm, Hibernate sẽ lấy loại lên đến hơn mười sản phẩm mà là trong phiên hiện tại và chưa có trường category của họ khởi tạo. Điều này tiết kiệm rất nhiều cuộc gọi SQL tới cơ sở dữ liệu. Càng xa càng tốt. Bây giờ tôi tự hỏi tại sao tôi không sử dụng chú thích @BatchSize trên MỌI mối quan hệ tải chậm? Sau tất cả lý do tại sao tôi muốn có thêm cuộc gọi đến cơ sở dữ liệu? Rõ ràng phải có một lý do cho điều này, nếu không thì những kẻ Hibernate có thể đã làm cho nó mặc định, nhưng tôi hiện không thể nhìn thấy nó.
chỉ là một chỉnh sửa nhỏ. "Có hai cách bạn có thể cấu hình quyến rũ hàng loạt: vào mức độ lớp và mức thu" [(tài liệu)] (http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance. html # performance-fetching-batch). Vì vậy, bạn nên đặt '@ BatchSize' vào lớp' ProductCategory', không phải trên trường 'Product.category'. –