μ΄λ²μλ CRUD μ€ Update μ λν λ΄μ©μ΄λ€.
Update a Student
νλμ Student object μ λνμ¬ JPA λ₯Ό μ¬μ©ν΄ FirstName μ update νλ λ°©λ²μ λ€μκ³Ό κ°λ€.
Student theStudent = entityManager.find(Student.class, 1);
// change first name to "John"
theStudent.setFirstName("John");
entityManager.merge(theStudent);Update last name for all students
int numRowsUpdated = entityManager.createQuery(
"UPDATE Student SET lastName='Tester'")
.executeUpdate();Student table μ λνμ¬ λͺ¨λ row μ lastName column κ°μ Tester λ‘ λ³κ²½νλ μ½λμ΄λ€. executeUpdate() λ₯Ό ν΅νμ¬ ν΄λΉ SQL statement λ₯Ό μ€ννκ³ , μ΄ λͺ κ°μ row λ₯Ό update νλμ§λ₯Ό return κ°μΌλ‘ λ°μμ numRowsUpdated μ μ μ₯νλ€.
μ΄μ κ³Ό λ§μ°¬κ°μ§λ‘ μΈ κ°μ§ λ¨κ³λ‘ λλμ΄ μ½λλ₯Ό μμ±ν΄λ³΄μ.
Step 1: Add new method to DAO Interface
public interface StudentDAO{
...
void update(Student theStudent);
}Step 2: Define DAO Implementation
public class StudentDAOImpl implements StudentDAO {
private EntityManager entityManager;
...
@Override
@Transactional
public void update(Student theStudent) {
entityManager.merge(theStudent);
}
}Step 3: Update Main Application
@SpringBootApplication
public class CruddemoApplication {
public static void main(String[] args) {
SpringApplication.run(CruddemoApplication.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(StudentDAO studentDAO) {
return runner -> {
updateStudent(studentDAO);
}
}
private void updateStudent(StudentDAO studentDAO) {
...
// retrieve student based on the id: primary key
Student myStudent = studentDAO.findById(tempStudent.getId());
// change first name to "John"
myStudent.setFirstName("John");
studentDAO.update(myStudent);
}
}Update - Test

μμ κ°μ΄, id κ°μ΄ 1 μΈ object μ λνμ¬ firstName μ "John" μΌλ‘ μ λ³κ²½λ κ²μ λ³Ό μ μλ€.