হাইবারনেটে অবিচ্ছিন্ন () এবং মার্জ () এর মধ্যে পার্থক্য কী?
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