हाइबरनेट में दृढ़ता () और मर्ज () के बीच अंतर क्या है?
persist()
एक अद्यतन और 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