我在某些表中有int / integer的列,其中0 = false,1 = true,我可以将它映射到布尔对象属性吗?
类似的东西:
public class...
//instead of
private int playeble;
//something like
@AwesomAnnotationConvertion(....)
private boolean playeble;
我正在使用Hibenate,但我们将迁移到EclipseLink,所以如果确实存在,我更愿意使用标准实现。
答案 0 :(得分:1)
public class YourEntity {
@Convert(converter=BooleanOneZeroConverter.class)
private Boolean playable;
}
@Converter
public class BooleanOneZeroConverter implements AttributeConverter<Boolean, Integer> {
private static final Integer TRUE_VALUE = 1;
@Override
public Integer convertToDatabaseColumn(Boolean value) {
//1 is true, 0 is false
return Boolean.TRUE.equals(value) ? 1 : 0;
}
@Override
public Boolean convertToEntityAttribute(Integer value) {
return TRUE_VALUE.equals(value);
}
}
请注意,上述代码适用于JPA 2.1。