Để làm việc với cơ sở dữ liệu, lớp của tôi mở rộng lớp HibernateDaoSupport
và bên trong các phương thức tôi đang sử dụng Spring HibernateTemplate
.Sử dụng Spring HibernateTemplate. Làm thế nào để xóa theo Id?
Vì vậy, ví xóa một hàng trong cơ sở dữ liệu tôi sử dụng phương pháp này:
public void delete(MyObject obj) {
getHibernateTemplate().delete(obj);
}
tất cả ok!
Nhưng, tại thời điểm này, tôi đang cố gắng để thực hiện một phương pháp mà có thể xóa một hàng dựa trên id:
public void delete(final long id) {
// some code here
}
Và tôi không thể tìm thấy một số phương pháp HibernateTemplate
như thế này:
getHibernateTemplate().remove(id)
Giải pháp tốt cho tôi trong trường hợp này là gì?
Điều này dường như là giải pháp thanh lịch nhất (không sử dụng truy vấn sql/hql), nhưng nó có vẻ khá kém hiệu quả vì nó xuất hiện để fecth toàn bộ đối tượng để xóa nó. Đó là trường hợp? Tôi nếu vậy, những gì có thể được thực hiện? –
Nếu id không tồn tại, 'myObject' sẽ là null và' delete() 'có thể gây ra lỗi? – NingLee
@NingLee có, bạn nhận được một ngoại lệ do tải xem xét rằng đối tượng tồn tại. Nếu bạn muốn tránh trường hợp ngoại lệ như vậy, hãy sử dụng 'get' thay vì' load' –