私はJPA(EclipseLink
プロバイダー)でpostgreSQLENUM
型をJava列挙型に(またはその逆に)マッピングしようとしています。
varchar
Java列挙型をpostgreSQLデータベースの型にアノテーションを付けて簡単にマップできることは知っていますが、 postgreSQLtpye@Enumerated
にマップしたいと思います。ENUM
これを行うには、カスタムEclipseLinkコンバーターを使用する必要があると思います。
だから、私は実装を始めましたが、、、およびメソッドorg.eclipse.persistence.mappings.converters.Converter
を実装する方法がわかりません...convertObjectValueToDataValue
initialize
isMutable
誰かがこれらのメソッドを実装する方法を教えてもらえますか?
今のところ、私のクラスはこれです:
public class EnumConverter implements Converter {
private static final long serialVersionUID = 1L;
public Object convertDataValueToObjectValue(Object object, Session session) {
if(object instanceof PGobject){
return LangageEnum.valueOf(LangageEnum.class, ((PGobject)object).getValue());
}
return null;
}
public Object convertObjectValueToDataValue(Object object, Session session) {
// WHAT HERE...?
// I tried to play with PGObject witout success...
return object;
}
public void initialize(DatabaseMapping arg0, Session arg1) {
// WHAT INITIALIZATION HERE...?
}
public boolean isMutable() {
// TRUE OR FALSE AND WHY...?
return false;
}
}
@Converter(name="langageConverter", converterClass=EnumConverter.class)
@Convert(value="langageConverter")
private LangageEnum langage;
説明ありがとうございます。EclipseLinkwithGoogleのカスタムコンバーターを検索しましたが、今回はGoogleが私の友達ではありませんでした。