作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是我需要为 Java 中的 POJO 字段之一生成唯一值。我正在使用 hibernate 。
使用序列生成器解决这个问题非常简单,但在我的现实中,我每次都需要使其随机,并且我需要它的值在 10^5 和 10^6 之间 - 它必须是 6 位数字。
所以,在Java服务中本地生成它也不是问题,但是如果我还有2个相同的服务怎么办?如果他们生成相同的数字,这会破坏我的数字的唯一性怎么办?这就是为什么我需要由数据库生成该数字。
请告诉我实现这一目标的最佳方法。我需要遵循什么策略。谢谢
最佳答案
无需在 ORM 级别执行此操作。只需让数据库引擎自动递增它即可。
创建表时,您可以将字段设置为唯一并从 100,000 开始自动递增AUTO_INCRMENT = 100000;
。
您的号码将保证是唯一的。
如果您将现有最高数字的检查和插入操作放在同一事务中,您也可以在服务级别手动执行此操作。
您也可以通过触发器来完成此操作。
关于java - 如何将数据库生成的随机唯一值分配给Hibernate POJO的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546387/
我是一名优秀的程序员,十分优秀!