首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否在删除jdo后重用IdGeneratorStrategy.Identity值?

是否在删除jdo后重用IdGeneratorStrategy.Identity值?
EN

Stack Overflow用户
提问于 2011-02-21 13:56:31
回答 1查看 509关注 0票数 1

我在使用。

如果由IdGeneratorStrategy.Identity生成一个长密钥字段,然后从数据存储中删除该对象,那么同一类的不同对象是否有可能再次使用该密钥?

reddit上的

文件写道:

GenerationType.IDENTITY的文档表示,它意味着持久化提供者(数据库)将提供唯一的ID。因此,如果数据库软件决定从已删除的记录中重用ID,则完全由数据库软件决定。如果不了解您的问题,我会说这是可能的,但我想不出有什么好的理由让数据库服务器跟踪哪些in在使用,并回收旧的in。这似乎是很大的开销,却没有什么好处。

谷歌集团的

和Mark写到了GAE标识是如何生成的:

由于prod中的数据存储由多个后端组成,所以我们使用分片计数器方法来分发id,这样我们就不必担心不同的后端发出相同的id。因此,后端A可能从0到100的ID池工作,后端B可能从101到200的ID池工作,依此类推。如果插入到不同的数据存储后端,则会得到一些ID。您可以依赖于这些ID是唯一的,但不是单调增加的。

我现在认为,重新使用身份价值是不太可能的,但最好有一个明确的明确答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-21 23:47:06

App引擎永远不会为给定的类型和父类重用ID。事实上,我认为很难找到这样的数据库--保持一个简单的计数器比试图找出哪些ID还在使用要简单得多,而且使用64位时,您不会用完ID。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5066827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档