Deleting Objects with JPA

류홍규·2023년 7월 6일
0

JPA

목록 보기
7/8

- Delete objects

//retrieve the student
int id = 1;
Student theStudent = entityManager.find(Student.class, id);

//delete the Student
entityManager.remove(theStudent);

⚾ Delete based on a condition

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);
	}
profile
공대생의 코딩 정복기

0개의 댓글

관련 채용 정보