JPA (EclipseLink
제공자)와 Java enum 유형에 postgreSQL ENUM
유형 (또는 그 반대로)을 매핑하려고합니다.JPA (EclipseLink) 및 사용자 정의 변환기로 Java enum에 postgreSQL enum 맵핑
은 내가 쉽게 @Enumerated
주석 내 PostgreSQL 데이터베이스에 varchar
유형 자바 열거를 매핑 할 수 있습니다 알고 있지만 나는 PostgreSQL을 ENUM
tpye에 매핑 할. 이 작업을 수행하려면 사용자 정의 EclipseLink 변환기를 사용해야한다고 생각합니다.
그래서, 나는 org.eclipse.persistence.mappings.converters.Converter
을 구현하기 위해 시작했지만 나는 convertObjectValueToDataValue
의 initialize
과 isMutable
방법 ...
사람이 어떻게 이러한 방법을하시기 바랍니다 구현하는 나를 설명 할 수을 구현하는 방법을 kown하지? 지금은
내 클래스는 하나입니다 설명에 대한
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;
덕분에, 나는 구글과는 EclipseLink에 대한 사용자 정의 변환기를 검색하지만 이번에 구글 내 친구가 아니었다.
아마 많이 바뀌지는 않지만'ENUM' 유형에 대해'isMutable()'false'를 반환하지 않아야합니까? – Martin