2012-05-25 52 views
5

Tôi có mối quan hệ cha-con với thuộc tính lười biếng được đặt false, vì vậy khi tôi nhận được lớp cha với truy vấn, tôi cũng có được con của mình.Có thể tải lười biếng cho một mối quan hệ không lười biếng trong Hibernate không?

Nó thường là thích hợp hơn để tải tất cả mọi thứ, cha mẹ và con cái, nhưng trong một trường hợp tôi không cần phải làm điều này.

Có cách nào để tránh tìm nạp trẻ em khi tôi nhận cha mẹ mà không thay đổi mối quan hệ lười = false?

+0

Tại sao không chỉ cần thay đổi cấu hình tải chậm từ mối quan hệ này đến "sai"? Có bất kỳ ràng buộc hoặc yêu cầu cụ thể nào khiến bạn ngần ngại không? – kyiu

Trả lời

4

Không, không thể. Điều duy nhất bạn có thể làm gì nếu bạn chỉ có một trường hợp hiệp hội không phải được lấy là sử dụng một DTO thay vì tổ chức của bạn, và sử dụng dự báo để lấy những gì bạn muốn:

String hql = "select firstName, lastName from User u where ..."; 
List<Object[]> rows = session.createQuery(hql).list(); 
List<UserDTO> users = new ArrayList<UserDTO>(rows.size()); 
for (Object[] row : rows) { 
    users.add(new User((String) row[0], (String) row[1])); 
} 
return users; 
Các vấn đề liên quan