Junior — Middle
Оё метавонед равандҳои пайдарпайро, ки объектҳо дар Hibernate аз эҷод то нест кардан мегузаранд, шарҳ диҳед?
sobes.tech AI
Ҷавоб аз AI
Дар Hibernate объектҳо дар давраи ҳаёти худ чанд ҳолат мегузаронанд:
- Transiente (гузаришӣ) — объект дар ёддошт сохта мешавад, аммо бо сессияи Hibernate пайваст нашудааст ва дар базаи додаҳо нигоҳ дошта нашудааст.
- Persistent (устувор) — объект бо сессияи Hibernate пайваст аст ва пайгирӣ мешавад. Тавзеҳот дар объект ҳангоми commit ба база ҳамоҳанг карда мешаванд.
- Detached (ҷудо) — объект, ки пештар бо сессия пайваст буд, аммо сессия баста ё объект ҷудо шудааст. Тавзеҳот пайгирӣ намешаванд.
- Removed (ҳарос) — объект барои хориҷ шудан аз база нишон дода шудааст.
Масалан, пайдарпайӣ:
- Созишти объект (Transient)
- Звон кардани
session.save(obj)— объект Persistent мешавад - Бо объект кор кардан, тағйирот автоматӣ нигоҳ дошта мешавад
- Сессияро мебандем — объект Detached мешавад
- Агар лозим бошад, объектро дубора ба сессия пайваст кардан мумкин аст тавассути
session.update(obj) - Барои хориҷ кардан,
session.delete(obj)-ро даъват мекунем — объект ба Removed мегузарад
Ин тариқ, Hibernate ҳолатҳои объектҳоро идора мекунад барои ҳамоҳангсозӣ бо базаи додаҳо.