什么是hibernate的持久性?

时间:2015-09-02 06:37:26

标签: java hibernate

我正在从here读出ORM的基础知识,其中定义了什么是持久性?

这里定义为

  

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

我无法低估超出JVM范围的含义。 我所理解的形式可能是

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

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

3 个答案:

答案 0 :(得分: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
}

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

Person p1 = new Person("Jon", "Skeet");
Person p2 = new Person("Gordon", "Linoff");

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

+-----------+----------+
| firstName | lastName |
+-----------+----------+
| Jon       | Skeet    |
| Gordon    | Linoff   |
+-----------+----------+

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

答案 1 :(得分:2)

持久性意味着即使在电源关闭后仍保留或保留数据。例如,在文本文件中保存数据也是持久性的。数据库是持久化数据的方式之一。

你知道这一点,这只是一个大词。

超出JVM的范围意味着即使在JVM关闭之后数据仍应保留或保留,即应用程序关闭

Hibernate在数据库中保存或保存Java bean /对象。所以它被称为ORM Object to Relational Mapping框架。这很简单,他们只是使用了很多花哨的单词,所以听起来很酷。

答案 2 :(得分:1)

这意味着即使您的应用程序已关闭,数据也会存储在某个文件或数据库中,以便下次您可以再次使用该数据