Yen sampeyan pengin nggunakake Hibernate kanggo ngganti obyek sing wis disimpen ing database, banjur ana sawetara cara kanggo iki.
Kapisan yaiku metode gabungan () , sing nganyari informasi ing basis data adhedhasar obyek sing dilewati . Iki bakal njaluk query SQL UPDATE. Tuladha:
User user = new User();
user.setName("Kolyan");
session.save(user);

session.evict(user);     // detach the object from the session
user.setName("Masha");

User user2 = (User) session.merge(user);
Ana sawetara nuansa penting ing kene.
Pisanan, metode gabungan () ngasilake asil, obyek sing dianyari. Obyek iki nduweni status Persist lan ditempelake ing obyek sesi. Obyek liwati kanggo nggabungake () cara ora ngganti.
Koyone ora ana bedane antarane pangguna lan pangguna2, nanging ora. Sampeyan bisa pass obyek POJO kanggo merge () cara , lan minangka asil, cara bisa bali proxy (gumantung ing setelan Hibernate). Dadi mung elinga yen metode gabungan () ora ngganti obyek sing dilewati.
Sareh, yen obyek liwati kanggo nggabungake () status Transient (lan ora duwe ID), banjur baris kapisah bakal digawe kanggo ing database. Ing tembung liyane, printah persist() bakal dieksekusi .
Katelu, yen obyek wis ditempelake ing sesi (karo status Persist) liwati menyang merge () cara, banjur ora bakal kelakon - cara mung bakal bali obyek padha. Kenging punapa? Lan kabeh amarga nalika transaksi ditindakake, data kasebut bakal ditulis ing basis data:
User user = new User();
user.setName("Kolyan");
session.save(user);

user.setName("Masha"); //change the object attached to the session

session.close();  //all changed objects will be written to the database
Ora perlu nyimpen obyek saben wektu sawise owah-owahan. Yen obyek iki ana ing status Persist, banjur Hibernate bakal nindakake kabeh dhewe. Yen sampeyan ngganti obyek sing "ditempelake ing basa", kabeh owah-owahan bakal ditulis ing basa.
Nuances saka nganyari () cara
Hibernate uga duwe cara nganyari () , sing, kaya metode simpen () , diwarisake saka versi sadurunge. Kanthi cara iki, sampeyan mung bisa nganyari data obyek sing wis disimpen. Iki bakal njaluk query SQL UPDATE. Tuladha:
User user = new User();
user.setName("Kolyan");
session.save(user);

session.evict(user);     // detach the object from the session
user.setName("Masha");

session.update(user);
Cara iki ora ngasilake apa-apa lan ora ngganti obyek sing ana.
Yen sampeyan nelpon metode iki ing obyek anyar, pangecualian mung bakal dibuwang:
User user = new User();
user.setName("Kolyan");
session.update(user);   //an exception will be thrown here
saveOrUpdate() Metode
Sadurunge tekane JPA, fungsi saka persist () cara dileksanakake dening saveOrUpdate () cara . Tugase yaiku nganyari informasi babagan obyek sing ana ing database, lan yen ora ana, banjur nggawe. Iku meh tansah digunakake ing panggonan nyimpen () lan nganyari () cara .
Ora kaya cara nganyari () , bisa ngganti obyek sing diterusake. Contone, setel menyang ID sing ditugasake nalika disimpen ing database. Tuladha:
User user = new User();
user.setName("Kolyan");
session.saveOrUpdate(user);   //object will be written to the database
Cara kerjane:
yen obyek liwati duwe ID, banjur UPDATE cara SQL disebut
yen ID obyek liwati ora disetel, banjur cara INSERT SQL diarani
Sadurungewulangan sadurunge
Sabanjurewulangan sabanjuré
0
Komentar
Popular
Anyar
lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar
sinau
Registrasi
Kursus Jawa
Bantuan karo Tugas
pricing
Proyek Game
Sintaksis Jawa
Masyarakat
Pangguna
Artikel
Forum
Ngobrol
Kisah Sukses
Kegiatan
Program Afiliasi
Perusahaan
Babagan awake dhewe
Kontak
Ulasan
Ruang Pers
CodeGym kanggo EDU
FAQ
Nyokong
CodeGym minangka kursus online kanggo sinau pemrograman Java wiwit wiwitan. Kursus iki minangka cara sing sampurna kanggo nguasai Java kanggo pamula. Isine luwih saka 1200 tugas kanthi verifikasi cepet lan ruang lingkup teori dhasar Jawa. Kanggo mbantu sampeyan sukses ing pendhidhikan, kita wis ngetrapake sawetara fitur motivasi: kuis, proyek coding, konten babagan sinau sing efisien lan karir pangembang Jawa.
Tindakake kita
Basa antarmuka
Basa Jawa
Programmer Digawe, Ora Lair © 2023 CodeGym
Programmer Digawe, Ora Lair © 2023 CodeGym
Situs web iki nggunakake cookie kanggo nyedhiyakake layanan pribadi. Kanthi nggunakake situs web iki, sampeyan setuju kanggo nggunakake cookie. Yen sampeyan mbutuhake rincian liyane, waca Katentuan lan Kebijakan.