@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable ="false")
public class Foo implements IsSerializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private Long revision;
@Persistent
private String information;
}
问题是这个对象在持久化时会不断覆盖,而不会在下一个版本中创建新的“记录”。 在传统的RDBMS中,它是一个双列主键。
如何使用Google App Engine Datastore完成此操作?
答案 0 :(得分:1)
我认为这是解决问题的最佳方法。
@PersistenceCapable(identityType = IdentityType.APPLICATION,detachable = "false")
public class Foo implements IsSerializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long _internalId;
@Persistent
private Long id;
@Persistent
private Long revision;
@Persistent
private String information;
}
其中id和revision被视为应用程序中的主键。
答案 1 :(得分:1)
如果要保留修订历史记录,则需要为每个更新创建和写入新记录。 id唯一标识记录 - 数据存储区无法知道您认为修订也是id的一部分。