在 Spring 中将自动增量 @Id 限制为 6 位

Posted

技术标签:

【中文标题】在 Spring 中将自动增量 @Id 限制为 6 位【英文标题】:Limit autoincrement @Id to 6 digit in Spring 【发布时间】:2021-05-19 06:09:29 【问题描述】:

我有一个模型课 作为这个自动增量ID 它返回 24 位的 objectId。

如何将其限制为仅 6 位?

模型类

@Id 
private String id;    
    
public String getId() 
        return id;

控制器类

ValidatorClass validation = new ValidatorClass();
    
Map<String, String> objValidate = validation.getExecutorInput(model.getLink(), 
                                    model.getUsername(), model.getPassword(), model.getSolution());

repository.save(model);

String id = "Request ID: " + model.getId();

return new ResponseEntity(id, org.springframework.http.HttpStatus.OK);

【问题讨论】:

【参考方案1】:

您可以对字段进行注释以指定进一步的限制,例如:

@Id 
@Column(length = 6)
@Size(max = 6)
private String id;

此外,如果您想在持久化实体之前更好地控制id,您可以将带有@PrePersist 注释的方法添加到您的实体中,您可以根据需要截断/转换id,例如:

@PrePersist
public void prePersist() 
  this.id = this.adapt(id);

【讨论】:

感谢您的回答 没问题,如果解决了您的问题,请记得将答案标记为已接受。

以上是关于在 Spring 中将自动增量 @Id 限制为 6 位的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Hibernate 在 Spring Boot 中将 MongoDB 设置为自动递增

Hibernate 中的自动增量

我应该为我的自动增量 ID MySQL 使用啥大小的 INT

Mongo的自动增量功能无法将Long设置为_id?

如何使用 Spring Boot 在 DynamoDB 中添加具有自动增量键的新项目

通过使用 MySQL 的 DataJpaTest 存储库测试,Hibernate 不会在 H2 DB 中将用户设置为自动增量