본문 바로가기

Development/Web & Server

[Hibernate] update 와 merge 차이점

update 의 사용방법

this.mSessionFactory.getCurrentSession().update(object);

object.set~~~~~~~



merge 의 사용방법

object.set~~~~~~

this.mSessionFactory.getCurrentSession().merge(object);



2개의 차이점을 보면 이미 영속성(Persistent)상태이면 상황에따라 update가 되지만 그렇지 않을경우 update 함수를 통해서 영속성 상태를 가지게 만들고 그 상태에서 수정을 해야 DB에 update가 적용이 됩니다. 하지만 merge의 경우 영속성이 아닌 객체 예를들면 다른 곳에서 전달받은 객체를 DB에 적용하고 싶을때 사용하면 적합히지 않을까 생각이 됩니다. merge의 경우 id가 없는 경우에는 새롭게 save처럼 동작을 한다고 하지만 되도록이면 update 목적으로 사용시 고려를 해보겠지만 save대용으로는 적합하지 않다고 합니다.