如何为存储密钥的枚举构建JPA转换器

时间:2014-04-21 11:07:34

标签: java jpa enums converter

我有以下键的枚举:

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;。所以也许一个界面有帮助,但我不知道如何创建它?

0 个答案:

没有答案