持久化对象在Hibernate体系结构中意味着什么?

yrdbyhpb  于 2022-11-14  发布在  其他
关注(0)|答案(7)|浏览(136)

Hibernate是一个持久化框架,用于将Java环境中的数据持久化到数据库中。

我太困惑了..如果我们将对象持久化到数据库中,那么为什么Hibernate架构在应用程序中间描述持久化对象,而在下图中描述Hibernate呢?

(来源:viralpatel.net)

yhqotfr8

yhqotfr81#

我会说得更清楚一些。持久对象是您创建的POJO类的示例,表示数据库中的表中的行。根据hibernate-doc,表示数据库中表的POJO类的示例经历了3种状态,持久化是其中之一。
当POJO示例在会话作用域中时,它被称为持久的,即当我们关闭或刷新会话时,Hibernate会检测到对该对象所做的任何更改,并将其与数据库同步。
关于hibernate.Properties和XMLMap@Ken Chan是对的。查看hibernate-doc,了解有关Hibernate中对象的更多插图。

vohkndzv

vohkndzv2#

首先,您需要了解Hibernate对象的三种状态,即瞬时、持久和分离。
暂态:如果一个对象刚刚使用new操作符示例化,并且在数据库中没有引用它,即它不表示数据库中的任何行,则该对象处于暂态。
持久化状态:如果一个对象在数据库中有引用,那么它就处于持久化状态,即它代表数据库中的某一行,并且标识符值被分配给它。如果对对象进行了任何更改,那么Hibernate将检测到这些更改并在数据库中产生影响,这就是名称持久存在的原因。这些更改是在关闭会话时进行的。持久对象在会话作用域中。
分离状态:已持久且不再位于会话作用域中的对象。休眠不会检测到对此对象所做的任何更改。它可以再次连接到会话以使其再次持久。

voj3qocg

voj3qocg3#

如图所示,您可以配置hibernate.properties或一些XML mapping,以将数据库表Map到名为persistent object的Java对象。
然后在application中,将persistent object用作普通的Java对象来操作其状态。您可以将persistent object传递给Hibernate。然后,Hibernate将生成必要的SQL并向DB发出必要的SQL,以同步persistent object及其对应的数据库记录的状态。这有意义吗?

j2qf4p5b

j2qf4p5b4#

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

l7mqbcuq

l7mqbcuq5#

持久化对象只不过是POJO类的一个示例。而POJO类只是一个表示表的类。而Hibernate总是监视那个持久对象。每当您操作该对象或对该对象进行任何更改时,Hibernate都会在该表中执行相同的操作(该表由POJO类表示)。这些都是由休眠处理的。因此,归根结底,这是Hibernate框架的特性之一。

csbfibhn

csbfibhn6#

持久对象是程序中在数据库中具有表示形式的类。
例如,如果您有一个Car类,其属性为编号为Fuel。例如,NHibernate配置会将其Map到数据库中名为CAR的表,该表具有与CAR类属性相对应的列。

rjee0c15

rjee0c157#

持久化对象是与DB表并行的类的Java对象。如果数据库中有一个EMP表,其中包含列nameagesalary。然后,您可以使用数据字段nameagesalary创建一个Java类,其中gettersetter用于所有三个字段。具有并行DB表的此类对象称为Persistent Object
在下图中:

Java应用程序将有POJO类,它将具有Persistent Objects,然后Hibernate框架将分别使用hibernate.propertiesXML Mapping的数据库连接和对象<->表Map知识将这些对象持久化到数据库中。

相关问题