如何将数据库生成的随机唯一值分配给Hibernate POJO的字段

时间:2019-06-11 14:49:49

标签: java database hibernate jpa unique

问题是我需要为Java中的POJO字段之一生成唯一值。我正在使用Hibernate。

使用序列生成器解决它非常简单,但实际上我每次都需要使其随机,并且我需要它的值在10 ^ 5到10 ^ 6之间-它必须是6位数字。 / p>

因此,在Java服务中本地生成它也不是问题,但是如果我有2个以上相同的服务怎么办。如果它们生成相同的数字会破坏我的数字的唯一性,该怎么办。这就是为什么我需要该数字由数据库生成。

请为我提供实现此目标的最佳方法。我需要遵循什么策略。谢谢

1 个答案:

答案 0 :(得分:1)

无需在ORM级别执行此操作。只需让数据库引擎自动递增它即可。

您可以将字段设置为唯一,并在创建表时从100,000 AUTO_INCREMENT = 100000;开始自动递增。

您的电话号码将保证是唯一的。

如果您同时检查现有号码中的最高号码和插入内容是否在同一笔交易中,也可以在服务级别上手动执行此操作。

您也可以通过触发器来实现。