根据您的情况,更好的主意是使用UUID:
因此,任何人都可以创建一个UUID并几乎可以肯定地使用它来标识某些内容,即该标识符不会重复已经或将要创建的用于标识其他内容的标识符。因此,以后可以将由独立各方用UUID标记的信息合并到单个数据库中,或在同一信道上传输,且重复的可能性很小。
@Servicepublic class UtilityServices { @Autowired private UniqueIdRepository uniqueIdRepository; @Transactional public String getUniqueIdentifier() { String uniqueId = String.format("%s-%s", RandomStringUtils.randomAlphanumeric(4), UUID.randomUUID().toString().replace("-", "") ); // you could left this check while (uniqueIdRepository.existsById(uniqueId)) {uniqueId = UUID.randomUUID().toString().replace("-", ""); } uniqueIdRepository.save(new UniqueId(uniqueId)); return uniqueId; }}
顺便说一句, 您可以使用
@DataModel:
@Data@Entity@NoArgsConstructor@AllArgsConstructorpublic class UniqueId implements Serializable { private static final long serialVersionUID = 0L; @Id private String uniqueId; }
而且不要忘记
serialVersionUID。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)