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

问题描述

我有一个模型类 作为这个自动增量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);

解决方法

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

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

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

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