我想知道如何映射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