我想知道如何映射JPA Java枚舉和PostgreSQL枚舉類型?PostgreSQL,枚舉,JPA,EclipseLink
在PostgreSQL身邊,我創造了這個類型:
CREATE TYPE langage AS ENUM ('FR', 'EN', 'DE');
而且我有一個Java枚舉:
public enum LangageEnum {
FR,
EN,
DE;
}
我JPA實體領域是這樣的一個:
@Enumerated(EnumType.STRING)
@Column(name="langage")
private LangageEnum langage = LangageEnum.FR;
但我收到異常:
引起:org.postgresql.util.PSQLException:ERREUR:la colonne«langage»est de type pretoria.langage mais l'expression est de type character varying Indice:Vous devezréécrirel'expression ou lui appliquer une transformation de類型。
我想我可以使用ObjectTypeConverter
作爲顯示here
但ObjectTypeConverter
是EclipseLink
註釋,不JPA
所以我在尋找另一種方式來做到這一點成功。
那麼,我該如何將Java枚舉映射到PostgreSQL枚舉呢?
標準JPA不支持自定義轉換器。如果您不想使用eclipselink特定的轉換器,那麼您的運氣不好,您必須使用String或Integer。 – 2013-02-13 17:04:09
我可以使用EclipseLink轉換器。我想知道是否有更多的「會議」和抽象的方式來做到這一點。 Thx – 2013-02-13 17:40:40
我不能成功...請問您有一些代碼嗎? – 2013-02-13 21:33:19