我有以下键的枚举:
public enum Unit {
Kilogram ( "KG" ),
Liter ( "L" );
String key = null;
Unit ( String key ) { this.key = key; }
public String getKey() { return key; }
public Unit findByKey( String key ) {
for ( Unit unit : Unit.values()) {
if ( key.equals( unit.key )) { return unit; }
}
return null;
}
我有很多这些枚举,所以我想创建一个转换器,如:
@Converter
public class EnumKeyConverter4jpa<E>
implements AttributeConverter<Enum, String> {
@Override
public String convertToDatabaseColumn(Enum arg0) {
if ( arg0 == null ) return null;
return arg0.getKey();
}
@Override
public Enum convertToEntityAttribute(String arg0) {
if ( arg0 == null ) return null;
return Enum.findByKey( arg0 );
}
}
当然,我总是最终得到&#34; getKey()&#34;和&#34; findByKey()&#34;不知道&#34; Enum&#34;。所以也许一个界面有帮助,但我不知道如何创建它?