- Delete objects
//retrieve the student
int id = 1;
Student theStudent = entityManager.find(Student.class, id);
//delete the Student
entityManager.remove(theStudent);
int numRowsDeleted = entityManager.createQuery("DELETE FROM Student WHERE lastName='ryu'")
.executeUpdate();
Step1: Add new method to DAO interface
public interface StudentDAO {
// create
void save(Student theStudent);
//retrieve
Student findById(Integer id);
// query
List<Student> findAll();
// query LastName
List<Student> findByLastName(String theLastName);
//Update
void update(Student theStudent);
//Delete by id
void delete(Integer id);
// Delete all
int deleteAll();
}
Step2: Define DAO implementation
@Override
@Transactional
public void delete(Integer id) {
// retrieve the student
Student theStudent = entityManager.find(Student.class, id);
// delete the student
entityManager.remove(theStudent);
}
@Override
@Transactional
public int deleteAll() {
return entityManager.createQuery("DELETE FROM Student").executeUpdate();
}
}
Step3: Update main app
private void deleteAllStudents(StudentDAO studentDAO) {
System.out.println("Deleting all students");
int numRowsDeleted = studentDAO.deleteAll();
System.out.println("Deleted row count: " + numRowsDeleted);
}
private void deleteStudent(StudentDAO studentDAO) {
int studentId = 3;
System.out.println("Deleting student id: " + studentId);
studentDAO.delete(studentId);
}