我已经使用 hibernate 将 Mysql 中的表映射到 Java 类。 表中的一列的类型为“enum('YES', 'NO')”。我想使用 hibernate 注释将其映射到 java 类中的 boolean 值。
根据下面的文档
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/types.html#types-value-basic
('Y', 'N'), ('0', '1') 和 ('T', 'F') 可以映射为 boolean 值。
如何将“enum('YES', 'NO') 映射到 boolean 值?
最佳答案
这是较旧的帖子,但也许有人会帮忙。我需要将字符串转换为 boolean 值并返回。
我写了一个转换器:
@Converter(autoApply = true)
public class BusinessEnvironmentConverter implements AttributeConverter<Boolean, String> {
enum BusinessEnvironment { TEST, PRODUCTION }
@Override
public String convertToDatabaseColumn(final Boolean production) {
return production ? BusinessEnvironment.PRODUCTION.name(): BusinessEnvironment.TEST.name();
}
@Override
public Boolean convertToEntityAttribute(final String dbField) {
final BusinessEnvironment businessEnvironment = BusinessEnvironment.valueOf(dbField);
return businessEnvironment.equals(BusinessEnvironment.PRODUCTION) ? TRUE : FALSE;
}
}
并使用它:
@Column(name=PRODUCTION, nullable=false)
@Convert(
converter=BusinessEnvironmentConverter.class,
disableConversion=false
)
private boolean production;
关于java - 将 Mysql 中的 enum ('YES' , 'NO' ) 列映射到 hibernate 中的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19317662/