什么是hibernate的持久性?

Sin*_*Oad 4 java hibernate

我正在从这里读出ORM的基础知识,它定义了什么是持久性?

在这里定义为

我们希望(某些)对象的状态超出JVM的范围,以便以后可以使用相同的状态.

我无法理解超出JVM范围的含义 .我所理解的形式可能是这样

  • 对象不是由jvm处理,而是由SESSION处理
  • 我们可以使用二级缓存保存对象的状态.

请纠正我,因为我真的不明白这个声明是在Hibernates自己的官方网站上定义的.

Tim*_*sen 5

beyond the scope of the JVM表示即使在JVM关闭后状态仍然存在.或者,换句话说,状态的存在并不依赖于JVM的存在.Hibernate是一种ORM(对象关系映射)工具,通常用于将Java对象映射到某个数据库中的记录.以这种方式使用时,Hibernate将Java程序中的状态存储在一个或多个数据库表中.

考虑以下Person类的定义:

public class Person {
    private String firstName;
    private String lastName;

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    // getters and setters
}
Run Code Online (Sandbox Code Playgroud)

假设您创建了2个这样的Person对象:

Person p1 = new Person("Jon", "Skeet");
Person p2 = new Person("Gordon", "Linoff");
Run Code Online (Sandbox Code Playgroud)

如果您要Person使用Hibernate 将这些对象持久化到数据库,您可能会得到一个如下Person所示的表:

+-----------+----------+
| firstName | lastName |
+-----------+----------+
| Jon       | Skeet    |
| Gordon    | Linoff   |
+-----------+----------+
Run Code Online (Sandbox Code Playgroud)

如果您停止Java应用程序然后再次启动它,Hibernate也可以在相反的方向上工作Person,从此数据库表中的行创建对象.