为什么要“将该类的实例作为实体存储在数据库中”?

时间:2009-04-30 20:16:12

标签: java database persistence object-persistence

我正在尝试理解来自Google Datastore API的一行说明:

  

JDO在Java类上使用注释   描述类的实例   存储在数据存储区中   实体,以及实体如何   检索时重新创建为实例   来自数据存储区。

我确信这对大多数人来说是一个非常基本的问题。但我不明白为什么类对象需要存储在数据库中以后检索。为什么不定义您希望数据存储区对您的应用程序看起来像什么,并根据需要仅存储类属性中的相关数据,而不是存储整个类或始终重复存储相同的属性?该类的实例包含所有类型的信息,在我看来,不需要在数据库中 - 方法,类变量,实例变量 - 我们在源代码中编写这些东西,我们不需要重现它在数据库中 - 我们只需要存储该类所运行的某些相关数据。对?也许我不明白引用的陈述是什么意思。如果我误解了,请纠正我。

2 个答案:

答案 0 :(得分:2)

  

为什么不改为为应用程序定义数据存储区的外观,并根据需要仅存储类属性中的相关数据,而不是存储整个类或始终重复存储相同的属性?

这正是你所引用的实际意思:

  

JDO在Java类上使用注释来描述类的实例如何作为实体存储在数据存储区中,以及如何在从数据存储区检索实体时将其重新创建为实例。

您使用注释来表示“存储字段X”,“忽略字段Y”等

答案 1 :(得分:2)

Google数据存储区不是SQL Server或Oracle等标准关系数据库。实体根据其定义存储,而不是先创建模式的传统方法,然后将对象映射到模式。我不认为私有成员或方法与数据一起存储,因此不像整个对象(包括方法)被序列化到数据存储区。