您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring Boot锁定代码以获取唯一的ID

Spring Boot锁定代码以获取唯一的ID

根据您的情况,更好的主意是使用UUID

因此,任何人都可以创建一个UUID并几乎可以肯定地使用它来标识某些内容,即该标识符不会重复已经或将要创建的用于标识其他内容的标识符。因此,以后可以将由独立各方用UUID标记的信息合并到单个数据库中,或在同一信道上传输,且重复的可能性很小。

@Service
public 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
@AllArgsConstructor
public class UniqueId implements Serializable {
    private static final long serialVersionUID = 0L;
    @Id
    private String uniqueId;   
}

而且不要忘记serialVersionUID

Java 2022/1/1 18:15:51 有445人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶