JPA - 实体对象持久化到底意味着什么?持久化的定义是什么?

10
我是相对较新的Java Web应用程序员,现在正在学习JPA。然而,实体对象“持久化”并不是十分清晰明了。我认为我有点概念,但我不想假设它的含义。
我参考了Oracle JPA Doc,但他们继续使用诸如“persist”或“persistence”之类的词语来描述“persistent”字段/属性。能否有人阐述一下这个持久性的概念?也许可以定义一下实体实例“持久”的含义?
如果您不能在您的定义中使用“persistent”(或任何形式的该词),那将非常感激。简单的答案很好,但更深入的解释肯定受欢迎!非常感谢!

这意味着在系统生命周期之外保存实体的状态。 - Sid
2个回答

25
  • 持久化 简单来说就是永久存储

    • 在JAVA中我们使用对象并尝试将对象的值存储到数据库(RDBMS大多数情况下)中。
    • JPA提供了对象关系映射(ORM)的实现,以便我们可以直接将对象存储到数据库作为新的元组。
    • 在JPA中对象被转换为实体以将其映射到数据库中的表。
  • 因此持久化实体意味着将对象(实体)永久存储到数据库中

希望这能帮助你!


13

"Persist"意味着“在应用程序关闭后仍然保留”。对象不仅存在于易失性存储器中,还存在于更永久的磁盘存储器上。如果应用程序关闭,或者用户结束其会话并开始新会话,旧数据仍可从磁盘上的永久存储中获得。

除非数据库是内存版本,否则它们将信息存储在磁盘上,这样可以使用SQL语言,但没有其他优点。如果使用关系SQL数据库,则可获得查询语言,无需担心如何在磁盘上存储信息即可轻松创建/读取/更新/删除信息。

SQL数据库使用不同的数据结构(例如B-Tree)在磁盘上存储关系。关系根据表格和列定义。表格中的每个记录由一组行值元组组成。对象必须使用对象关系映射将表格和列映射到对象和属性。 JPA将此思想概括并构建到Java EE中,遵循TopLink和Hibernate等实现的示例。

像MongoDB这样的NoSQL数据库也将信息存储在磁盘上,而不是关系。

对象数据库使用Java序列化、XML、JSON或自定义格式(例如Google协议缓冲区)对对象及其所有子项进行序列化。

图形数据库(例如Neo4J)可以被视为对象数据库的更一般情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接