持久化对象在Hibernate架构中意味着什么?

rez*_*ary 30 persistence hibernate

Hibernate是一个持久性框架,用于将数据从Java环境持久化到数据库.

我很困惑,如果我们坚持并反对数据库,那么为什么Hibernate架构会在Application和Hibernate中间指示持久对象?

一只忙碌的猫

Dar*_*rse 33

我会让它更清晰.持久对象是您创建的POJO类的实例,它们表示数据库中表中的行.根据hibernate-doc,表示数据库中的表的POJO类的实例经历了3个状态,其中持久性是其中之一.

当POJO实例处于会话范围内时,它被认为是持久的,即当我们关闭或刷新会话时,hibernate会检测对该对象所做的任何更改并将其与数据库同步.

关于hibernate.properties和XML Mapping @Ken Chan是对的.通过hibernate-doc获取有关hibernate中对象的更多插图.


小智 20

首先,您需要了解Hibernate对象的三种状态,即Transient,Persistent,Detached.

瞬态:如果对象刚刚使用new运算符进行实例化,并且数据库中没有对象的引用,则它处于临时状态,即它不代表数据库中的任何行.

持久状态:如果对象在数据库中有一些引用,则它处于持久状态,即它表示数据库中的某一行,并为其分配标识符值.如果对该对象进行了任何更改,那么hibernate将检测这些更改,并且数据库中将存在效果,这就是名称Persistent的原因.会话结束时会进行这些更改.持久对象在会话范围内.

分离状态:持久且不再在会话范围内的对象.hibernate不会检测对此对象所做的任何更改.它可以再次连接到会话以使其再次持久化.


Ken*_*han 8

根据该图,您可以配置hibernate.propertiesXML mapping将数据库表映射到被调用的java对象persistent object.

然后在你的application,你使用persistent object作为普通的java对象来操纵它的状态.你可以传递persistent object给hibernate.然后,Hibernate会生成并向DB发出必要的SQL来同步persistent object它及其相应数据库记录的状态.这有意义吗?

  • 在休眠术语中,当休眠会话“刷新”时,持久对象将与数据库同步(即根据持久对象的状态从数据库中保存/更新/删除) (2认同)

Cod*_*dow 6

持久对象通常是存储在内存中的对象,甚至超过创建它的进程的持续时间.然后将这些对象存储在数据库中.


Dra*_*gon 5

持久对象不过是POJO类的实例。POJO类不过是代表表的类。而且Hibernate始终监视该持久对象。每当您操纵该对象或对该对象进行任何更改时,Hibernate都会在该表中执行相同的操作(该表由POJO类表示)。所有这些都由休眠状态处理。因此,从某种意义上讲,这是休眠框架的功能之一。