JPAは列挙を使用します

706 ワード

converterを使う
@Converter
public class PeriodStatusConverter implements AttributeConverter {
    @Override
    public Integer convertToDatabaseColumn(PeriodStatus status) {
        return status.getId();
    }

    @Override
    public PeriodStatus convertToEntityAttribute(Integer id) {
        if(id == null){
            return null;
        }
        for(PeriodStatus type:PeriodStatus.values()){
            if(type.getId() == id.intValue()){
                return type;
            }
        }
        return null;
    }
}
domain
    @Convert(converter = PeriodStatusConverter.class)
    private PeriodStatus status;