Sobes.tech
Junior — Middle

Оё метавонед равандҳои пайдарпайро, ки объектҳо дар Hibernate аз эҷод то нест кардан мегузаранд, шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар Hibernate объектҳо дар давраи ҳаёти худ чанд ҳолат мегузаронанд:

  1. Transiente (гузаришӣ) — объект дар ёддошт сохта мешавад, аммо бо сессияи Hibernate пайваст нашудааст ва дар базаи додаҳо нигоҳ дошта нашудааст.
  2. Persistent (устувор) — объект бо сессияи Hibernate пайваст аст ва пайгирӣ мешавад. Тавзеҳот дар объект ҳангоми commit ба база ҳамоҳанг карда мешаванд.
  3. Detached (ҷудо) — объект, ки пештар бо сессия пайваст буд, аммо сессия баста ё объект ҷудо шудааст. Тавзеҳот пайгирӣ намешаванд.
  4. Removed (ҳарос) — объект барои хориҷ шудан аз база нишон дода шудааст.

Масалан, пайдарпайӣ:

  • Созишти объект (Transient)
  • Звон кардани session.save(obj) — объект Persistent мешавад
  • Бо объект кор кардан, тағйирот автоматӣ нигоҳ дошта мешавад
  • Сессияро мебандем — объект Detached мешавад
  • Агар лозим бошад, объектро дубора ба сессия пайваст кардан мумкин аст тавассути session.update(obj)
  • Барои хориҷ кардан, session.delete(obj)-ро даъват мекунем — объект ба Removed мегузарад

Ин тариқ, Hibernate ҳолатҳои объектҳоро идора мекунад барои ҳамоҳангсозӣ бо базаи додаҳо.