代码之家  ›  专栏  ›  技术社区  ›  Brad

GAE/JDO如何将实体转换为域对象?

  •  1
  • Brad  · 技术社区  · 14 年前

    在App Engine的JDO实现中,对象类型与持久化到数据存储的实体一起保存为“Kind”。当这些实体从数据存储中取回时,它们会自动返回(在JDO的某些层中)作为原始对象类型。令我困惑的是,只保存类的简单名称,而不保存完整路径。那么JVM如何加载正确的类呢?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Pace    14 年前

    您的JDO提供者(GAE实际上并不参与这个等式)保持从实体到表的内部映射。有时它从各种xml文件中形成,有时它通过注释形成(取决于您的编码风格)。在这个映射表中,名称实际上被映射到完全限定的类。

    如果您存储这两种用户对象,那么JDO会给您一个异常,因为它们将使用同一个表。您可以通过指定一个不同的表(通过注释或xml配置)来解决这个问题。此规范将进入JDO的内部映射。然后JDO就会知道如何正确地解析实体。