Phương pháp nào tốt nhất (hiệu suất khôn ngoan) để xóa một đối tượng nếu chỉ có id của nó.Hibernate Xóa đối tượng theo id
HQL. Sẽ thực hiện HQL này tải đối tượng SessionContext vào bối cảnh persistence hibernate?
for(int i=0; i<listOfIds.size(); i++){ Query q = createQuery("delete from session_context where id = :id "); q.setLong("id", id); q.executeUpdate(); }
Tải theo ID và xóa.
for(int i=0; i<listOfIds.size(); i++){ SessionContext session_context = (SessionContext)getHibernateTemplate().load(SessionContext.class, listOfIds.get(i)); getHibernateTemplate().delete(session_context) ; }
Đây SessionContext là đối tượng ánh xạ tới session_context bảng. Hoặc, tất nhiên là có một cách tiếp cận hoàn toàn khác nhau và tốt hơn?
cảm ơn, một số mối quan tâm 1. idList của tôi có thể có khoảng 1000 id tại một thời điểm nhất định. đó có phải là một vấn đề n? 2. Khi thực hiện thao tác xóa trước tiên, nó sẽ thử tải tất cả các đối tượng SessionContext vào bối cảnh kiên trì để xóa và sau đó tiếp tục xóa? – mohit052
Để xóa một đối tượng, bạn không cần tải chúng vào phiên. Nó cũng làm việc với 1000 mục, nhưng trước tiên hãy làm việc với nó sau đó thực hiện các cải tiến hiệu suất. – ManuPK
cảm ơn. đã nhận nó :-D – mohit052