Spring 修复JPA实体属性上的字符串约束

Spring 修复JPA实体属性上的字符串约束,spring,spring-boot,jpa,spring-data-jpa,Spring,Spring Boot,Jpa,Spring Data Jpa,我是JPA新手, 我只想将实体中属性的特定固定部门名称设置为固定字符串作为约束。例如,属性的默认值 如何设置它?我认为最好的选择是使用由Dinesh Dontha指示的枚举,请尝试以下方法: 实体 @Entity public class MyEntity implements Serializable(){ private MyEnum attribute; } 枚举 转换器 @Converter(autoApply = true) public class MyEntityEnu

我是JPA新手, 我只想将实体中属性的特定固定部门名称设置为固定字符串作为约束。例如,属性的默认值


如何设置它?

我认为最好的选择是使用由Dinesh Dontha指示的枚举,请尝试以下方法:

实体

@Entity
public class MyEntity implements Serializable(){

    private MyEnum attribute;
}
枚举

转换器

@Converter(autoApply = true)
public class MyEntityEnumConverter implements AttributeConverter<MyEnum, String> {

    @Override
    public String convertToDatabaseColumn(MyEnum myEnum) {
        return myEnum.getShortName();
    }

    @Override
    public MyEnum convertToEntityAttribute(String dbData) {
        return MyEnum.fromShortName(dbData);
    }

}
@转换器(autoApply=true)
公共类MyEntityEnumConverter实现AttributeConverter{
@凌驾
公共字符串convertToDatabaseColumn(MyEnum MyEnum){
返回myEnum.getShortName();
}
@凌驾
公共MyEnum convertToEntityAttribute(字符串dbData){
返回MyEnum.fromShortName(dbData);
}
}

您是指实体对象中具有默认值的字段吗?如果是,您可以使用默认值定义字段,例如,
private String name=“fixed name”@tonlytc,但我有多个字段的固定值,需要匹配其中一个。e、 g status是字段和多个值-active、deactive、invalid我需要将此active、deactive、invalid设置为约束。@幸运的是,您可以尝试使用ENUM对这些固定值执行操作values@Lucky那么,您的意思是希望验证器验证字段的值是否为预定义值之一(例如“活动”、“非活动”或“无效”)?如果是这样,您可以像博客一样创建一个自定义验证器。
@Converter(autoApply = true)
public class MyEntityEnumConverter implements AttributeConverter<MyEnum, String> {

    @Override
    public String convertToDatabaseColumn(MyEnum myEnum) {
        return myEnum.getShortName();
    }

    @Override
    public MyEnum convertToEntityAttribute(String dbData) {
        return MyEnum.fromShortName(dbData);
    }

}