Hibernate에서 persist ()와 merge ()의 차이점은 무엇입니까?
persist()
UPDATE & INSERT 쿼리를 만들 수 있습니다. 예 :
SessionFactory sef = cfg.buildSessionFactory();
Session session = sef.openSession();
A a=new A();
session.persist(a);
a.setName("Mario");
session.flush();
이 경우 쿼리 는 다음과 같이 생성됩니다.
Hibernate: insert into A (NAME, ID) values (?, ?)
Hibernate: update A set NAME=? where ID=?
그래서 persist()
메소드 는 삽입과 업데이트를 생성 할 수 있습니다 .
이제 merge()
:
SessionFactory sef = cfg.buildSessionFactory();
Session session = sef.openSession();
Singer singer = new Singer();
singer.setName("Luciano Pavarotti");
session.merge(singer);
session.flush();
이것이 내가 데이터베이스에서 보는 것입니다.
SINGER_ID SINGER_NAME
1 Ricky Martin
2 Madonna
3 Elvis Presley
4 Luciano Pavarotti
이제 다음을 사용하여 레코드를 업데이트하십시오. merge()
SessionFactory sef = cfg.buildSessionFactory();
Session session = sef.openSession();
Singer singer = new Singer();
singer.setId(2);
singer.setName("Luciano Pavarotti");
session.merge(singer);
session.flush();
이것이 내가 데이터베이스에서 보는 것입니다.
SINGER_ID SINGER_NAME
1 Ricky Martin
2 Luciano Pavarotti
3 Elvis Presley