2009-10-14 111 views
0
@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数据存储多字段密钥

如何使用Google App Engine Datastore完成此操作?

+0

为什么单个空格编辑? – 2009-10-14 23:02:23

+0

它删除了代码上的水平滑块:) – Jacob 2009-10-14 23:05:18

+0

ah ............. – 2009-10-14 23:07:26

回答

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

如果您想保留修订历史记录,则需要为每个更新创建并写入新记录。该ID唯一标识该记录 - 数据存储区无法知道您认为该修订版也是该ID的一部分。

相关问题