Java 将POJO映射到数据存储实体
假设你有这个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很容易映射到实体的属性中,
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可能没有出现过。:-)