PizzaApp의 내용을 다음과 같이 수정합니다.

Pizza pizza = new Pizza();
        pizza.setName("yuonghoe's pizza");
        pizza.setPrice(10000);
        pizza.setSize("Large");
        pizza.setToping("Pepperoni");

        s.save(pizza);

        pizza.setPrice(15000);
        s.update(pizza);

처음에 가격을 만원으로 했다가 너무 낮아서 만오천원으로 올리고 s.update(pizza); 메소드를 사용하여 update를 합니다.

실행시키면 콘솔 창에 다음과 같이 출력됩니다.

Hibernate: select nextval ('Pizza_PizzaId_Seq')
Hibernate: insert into O_Pizza (toping, price, name, size, pizzaId) values (?, ?, ?, ?, ?)
Hibernate: update O_Pizza set toping=?, price=?, name=?, size=? where pizzaId=?

bk87.bmp
DB를 확인해 본 결과 15000원으로 update된 것을 확인 할 수 있습니다.

PizzaApp에서 작성한 코드에서 s.update(pizza);를 삭제하고 다음과 같이 입력해 보겠습니다.

        Pizza pizza = new Pizza();
        pizza.setName("chanwook's pizza");
        pizza.setPrice(10000);
        pizza.setSize("Large");
        pizza.setToping("Kimchi");

        s.save(pizza);

        pizza.setPrice(15000);

s.update(pizza); 가 빠진것을 제외하면 다른 부분은 거의 동일합니다. 이 것을 실행시키면 콘솔창에 다음과 같이 출력이 되고 DB에서 확인을 해도 역시 update 된 것을 확인할 수 있습니다.

Hibernate: select nextval ('Pizza_PizzaId_Seq')
Hibernate: insert into O_Pizza (toping, price, name, size, pizzaId) values (?, ?, ?, ?, ?)
Hibernate: update O_Pizza set toping=?, price=?, name=?, size=? where pizzaId=?

bk88.bmp
왜 이럴지는 HIA 4장에 나오는 그림을 보며 생각해 보겠습니다.