持久性对象在Hibernate架构中意味着什么?
2022-09-01 02:56:41
Hibernate是一个持久性框架,用于将数据从Java环境持久化到数据库。
我很困惑。.如果我们将一个对象持久化到数据库中,那么为什么Hibernate Architecture在下图中描述了应用程序和Hibernate中间的持久化对象?
(资料来源:viralpatel.net)
Hibernate是一个持久性框架,用于将数据从Java环境持久化到数据库。
我很困惑。.如果我们将一个对象持久化到数据库中,那么为什么Hibernate Architecture在下图中描述了应用程序和Hibernate中间的持久化对象?
(资料来源:viralpatel.net)
我会让它更清楚。持久对象是您创建的 POJO 类的实例,这些类表示数据库中表中的行。根据hibernate-doc,表示数据库中表的POJO类的实例经历了3种状态,其中持久性是其中之一。
当 POJO 实例处于会话范围内时,它被称为持久性,即休眠会检测对该对象所做的任何更改,并在我们关闭或刷新会话时将其与数据库同步。
关于hibernate.properties和XML Mapping @Ken Chan是对的。浏览休眠文档,以获取有关休眠对象的更多插图。
首先,您需要了解休眠对象的三种状态,即瞬态,持久化,分离。
瞬态:如果对象刚刚使用 new 运算符实例化,并且数据库中没有对它的引用,即它不表示数据库中的任何行,则该对象处于瞬态状态。
持久状态:如果对象在数据库中有一些引用,即它表示数据库中的某行并且为其分配了标识符值,则该对象处于持久状态。如果对对象进行了任何更改,则休眠将检测这些更改,并且效果将存在于数据库中,这就是名称Persistent的原因。这些更改是在会话关闭时进行的。持久性对象位于会话作用域中。
分离状态:已持久且不再位于会话作用域中的对象。休眠不会检测到对此对象所做的任何更改。它可以再次连接到会话,以使其再次持久化。