Java 将POJO映射到数据存储实体

Java 将POJO映射到数据存储实体,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,假设你有这个POJO: public class User { private String name; private Integer age; @Embedded private Address newAddress; @Child private Address oldAddress; } 我需要将其转换为com.google.appengine.api.datastore.Entity对象。属性name和age很容易映射到实体的属性中,

假设你有这个POJO:

public class User {
    private String name;
    private Integer age;
    @Embedded
    private Address newAddress; 
    @Child
    private Address oldAddress;
}
我需要将其转换为
com.google.appengine.api.datastore.Entity
对象。属性
name
age
很容易映射到实体的属性中,而且
newAddress
将是
EmbeddedEntity
。假设oldAddress是作为自己的实体存储的,只是有一个关系,即它是
用户的子项

我会这样做:

Entity userEntity = ...

userEntity.setProperty("name", name);
userEntity.setProperty("age", age);

EmbeddedEntity ee = ...
e.setProperty("newAddress", ee);

Entity oldAddress = new Entity(KeyFactory.createKey(e.getKey, "Address", user.getOldAddress.getId()));

userEntity.setProperty("oldAddress", oldAddress.getKey());

这是正确的吗?

不要重新发明轮子,只要使用。认真地彼得,我不是在重新发明轮子。:-)嗯,我可以想,如果Objectify或Twig的作者认为只使用JDO,那么Objectify或Twig可能没有出现过。:-)