问题标签 [id-generation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
562 浏览

database - 在 ebean 中生成短 id 之前将实体保存到数据库

我想在保存到数据库之前获取实体的 ID。如果我有 EbeanEntity:

并打电话

返回值非常复杂(ce9d8486-2128-4a66-bef4-4158b6de2c7e)。我需要短值,例如当我使用 Long 或 String 作为 Id(1、2、3... 等) 时。Ebean.nextId javadoc 说“这仅在 IdGenerator 位于此 bean 类型(例如 DB 序列或 UUID)上时才有效。”。如果我使用 Long 或 String 作为 id,Ebean.nextId 返回 null。那么我如何使用“数据库序列”或其他方式在将项目保存到数据库之前获取项目的短 ID?

0 投票
2 回答
5764 浏览

java - Hibernate,什么是最有效的 id 生成策略?

我需要通过 Hibernate 将许多实体插入到数据库中。所以,我想找到最有效的 ID 生成算法。

因此, Hibernate Documentation存在四种广泛使用的生成策略:

  • 身份
  • 序列
  • 桌子
  • 汽车

我应该使用 MySQL 数据库,所以我不能应用 SEQUENCE 生成策略。其他策略呢?从性能的角度来看,什么是最有效的?

0 投票
1 回答
172 浏览

nhibernate - NHibernate - 用于导入大量数据的 ID 生成策略

我有一个使用序列 ID 生成器的数据库。我需要对大量数据执行一次迁移。我正在使用 NHibernate 来完成这项工作,因为迁移逻辑非常复杂。

另外我不希望这个操作持续很长时间,所以我想使用批处理。

是否有任何 Id 策略可以使用序列作为输入,在不联系数据库的情况下生成所有需要的 id,然后在最后更新序列以使另一个应用程序能够正常使用?

执行迁移时不会运行其他应用程序。

0 投票
2 回答
868 浏览

java - 具有持久性的 Java 中的安全 ID

我正在准备一个 Java 库,该库需要为生成的对象分配一个唯一的 id 以进行序列化。一旦生成了唯一的 id,我必须确保下次使用该库时,不可能将 id 重新分配给我过去已经保存的对象。

现在,我看到Stackoverflow中的许多人建议依赖几个选项,即UUID, SecureRandom,但我不确定这些类是否适合我的需求,也不知道如何使用它们。

拜托,您能否向自己介绍要使用的正确实用程序以及如何生成 id?

欢迎使用基于 Guava/Apache 实用程序的解决方案。

0 投票
2 回答
26684 浏览

java - 休眠中的本机生成器类

我有这部分休眠映射 xml 文件,我正在寻找一个很好的例子来说明原生的含义。

我知道这与唯一标识符属性有关,但我真的很想举个例子。

对于新手问题,我很抱歉,我是一般的休眠和编程新手 :) 谢谢!

0 投票
1 回答
464 浏览

hibernate - 自动生成的域类 id 异常

场景:使用默认的 Postgres 序列生成器创建和插入域类(使用自定义方言为每个表创建一个序列,但我认为这无关紧要)。现在,在某些情况下,我想选择自己的 ID 进行插入。

我想象两种基本方式:

  • 首选:只需在保存之前在域中设置 id。如果未设置,则使用生成的 id。我天真地尝试了这个,但它没有用,即插入实例时使用自动生成的 id,即使域实例中已经设置了另一个 id。
  • 使用“生成器:分配”映射并确定默认 ID(让数据库决定)。如何做到这一点最好?
0 投票
1 回答
2820 浏览

java - 无法解释 id 生成器策略:xyzCustomIDGenerator

我面临休眠映射问题:无法解释 ID 生成器策略:堆栈跟踪:

我的客户 ID 生成器类如下所示:

我在谷歌上搜索,但找不到解决方案。如果我犯了任何错误或有解决方案,请告诉我。谢谢。

0 投票
0 回答
319 浏览

c# - 关于如何注册 IIdGenerator,mongodb c# 驱动程序有什么变化吗?

我目前正在尝试将我的 mongocsharpdriver 包从 1.5 版本更新到 1.8.3。但是,我的自定义 IdGenerator 已停止使用升级。

我正在使用(使用 StructureMap)为所有 int 类型的 Id 注册我的 id 生成器的代码是:

以上在 mongocsharpdriver 1.5 上已经运行了好几个月。今天我尝试将我们的 nuget 包更新到 1.8.3,我现在只得到 0 的任何新项目的 ID。

我在 IdGenerator 的 GenerateId 和 IsEmpty 函数中放置了一些断点以查看发生了什么,但甚至没有调用这些函数(使用正确的参数调用 IdGenerator 的构造函数,而不是在插入项目时调用实际函数到数据库)。

我在http://docs.mongodb.org/ecosystem/tutorial/serialize-documents-with-the-csharp-driver/上查找了有关如何注册 IdGenerator 的文档。关于如何为类型注册 IdGenerator 似乎没有任何差异。

任何帮助表示赞赏

0 投票
0 回答
993 浏览

java - @GeneratedValue(strategy=GenerationType.AUTO) 不会为嵌入式设置创建 id

我使用 Spring 和 Hibernate 作为 JPA 实现者进行了以下数据库设置。我有一个扩展 org.springframework.data.jpa.domain.AbstractPersistable 的实体类,它基本上定义了一个具有 AUTO 生成策略的 id 属性。

如果正确阅读所有内容,这将意味着 JPA 实现者(在我的例子中为 Hibernate)负责生成 id。

它适用于使用 PostgreSQL 的实际设置,但不适用于此嵌入式设置:

实体类

0 投票
2 回答
52 浏览

java - 为什么我的 appengine IdGeneratorStrategy 会生成大量数字?

我只是将我的代码从一台机器移动到另一台机器,释放它,突然它创建了一个带有“576728208506880”键的条目,所以我从原始机器重新发布了完全相同的代码并创建了另一个字段,这次创建的键是“21134006”

谁能解释为什么会这样?!

谢谢,J