Spring boot 如何将布尔数据库值映射到Java枚举
对于字符串,使用属性转换器很容易。如何找到布尔型的模式 我有一个枚举,它只是Spring boot 如何将布尔数据库值映射到Java枚举,spring-boot,jpa,enums,boolean,entity,Spring Boot,Jpa,Enums,Boolean,Entity,对于字符串,使用属性转换器很容易。如何找到布尔型的模式 我有一个枚举,它只是 public enum InsuranceStatus { Active, Inactive } 我想找到布尔值的枚举值。如果无法更改枚举: public class InsuranceStatusConverter implements AttributeConverter<InsuranceStatus, Boolean> { @Override public Boolean
public enum InsuranceStatus
{
Active, Inactive
}
我想找到布尔值的枚举值。如果无法更改枚举:
public class InsuranceStatusConverter implements AttributeConverter<InsuranceStatus, Boolean> {
@Override
public Boolean convertToDatabaseColumn(InsuranceStatus status) {
return status == InsuranceStatus.Active ? true : false
}
@Override
public InsuranceStatus convertToEntityAttribute(Boolean status) {
return status == true ? InsuranceStatus.Active : InsuranceStatus.Inactive ;
}
}
为
AttributeConverter
@Rono编写一个属性转换器确实是一个输入错误。请毫不犹豫地编辑:)
enum InsuranceStatus {
ACTIVE(true), INACTIVE(false);
private boolean status;
public static InsuranceStatus valueOf(Boolean status){
// Or throw an exception instead of returning null if more appropriate
if (status == null) { return null;}
return status == true ? InsuranceStatus.ACTIVE: InsuranceStatus.INACTIVE;
}
private InsuranceStatus (boolean status) {
this.status = status;
}
public boolean getStatus(){
return status;
}
}
public class InsuranceStatusConverter implements AttributeConverter<InsuranceStatus, Boolean> {
@Override
public Boolean convertToDatabaseColumn(InsuranceStatus status) {
return status.getStatus();
}
@Override
public InsuranceStatus convertToEntityAttribute(Boolean status) {
return InsuranceStatus.valueOf(status);
}
}
@Convert(converter = InsuranceStatusConverter.class)
private InsuranceStatus status;