首页 文章

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

提问于
浏览
1

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

例如,如果我有com.project.domain.User并且我将此类的实例保存到数据存储区,则仅为实体类型定义“用户” . 当我使用JDO选择退出这个数据时,我得到了一个com.project.domain.User . GAE / JDO如何知道加载com.project.domain.User而不是com.project.other.domain.User?

1 回答

  • 2

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

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

相关问题