Google app engine GWT:解密GAE-JDO密钥以访问父级
GAE-JDO文档建议可以从子密钥检索父密钥: 还要注意的是,密钥的字符串表示不是加密的:用户可以解码密钥字符串以提取其组件,包括实体及其祖先的种类和标识符 参考: 我使用以下命令生成密钥:Google app engine GWT:解密GAE-JDO密钥以访问父级,google-app-engine,gwt,key,jdo,Google App Engine,Gwt,Key,Jdo,GAE-JDO文档建议可以从子密钥检索父密钥: 还要注意的是,密钥的字符串表示不是加密的:用户可以解码密钥字符串以提取其组件,包括实体及其祖先的种类和标识符 参考: 我使用以下命令生成密钥: @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true") priva
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String id;
parent.id = agpzfnZpdmVlbGFichQLEgdTZXNzaW9uGICAgICgwMsIDA
child1.id = agpzfnZpdmVlbGFiciYLEgdTZXNzaW9uGICAgICgwMsIDAsSBVN0YWdlGICAgICAwK8KDA
...
检查数据存储时,我的实体键如下所示:
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String id;
parent.id = agpzfnZpdmVlbGFichQLEgdTZXNzaW9uGICAgICgwMsIDA
child1.id = agpzfnZpdmVlbGFiciYLEgdTZXNzaW9uGICAgICgwMsIDAsSBVN0YWdlGICAgICAwK8KDA
...
(其中父项具有类型为Child的子项)。所以,我要找的是这样一个GWT函数:
String getParentIdFromChildId(String childId) {
String parentId = ...
return parentId;
}
因此,我可以从客户端(GWT)引用子对象(通过首先查找其父对象):
我还可以通过跟踪父id来解决这个问题,但是如果父id信息已经嵌入到子id中,这是低效的
提前谢谢
~Owenchild1.getParent()
返回实体child1
的父项的键
因此,如果您有一个实体child1
,并且需要其父级id,只需调用:
String parentId = child1.getParent().id;
返回它的父级id
请在此处阅读更多信息:
我不确定这是不是你想要的,但我会这么做的
谢谢
~Samir您找到了在Java或python中执行此操作的算法或例程吗?如果找到了,Java版本应该直接在gwt中工作,或者应该易于移植。没有,还没有找到如何在Java或python中执行此操作。子id似乎由附加到父id的字符串组成,如果模式是子id从一个固定的位置开始,那么算法很简单,但我不相信。尝试寻找更多的文档或使用更多的键。你的解决方案适用于App Engine-我需要一个GWT解决方案。