我尝试使用@Enumerated注释来映射我的枚举类型,但是得到了关注错误:
Exception in thread "main" java.lang.ClassCastException: org.postgresql.util.PGobject cannot be cast to java.lang.String
我做什么: 在postgres
create type "test_type" as enum ('test_1', 'test_2);
在java中
public enum TestType {test_1,test_2}
@Entity @Table(name =“test_table”)公共类TestTable {...
@Enumerated(EnumType.STRING)@Column(name =“col”)私有TestType 山坳; ......}
答案 0 :(得分:3)
在JPA中,枚举可以作为文本(枚举的名称)或数值(枚举的序数)保留。 @Enumerated(EnumType.STRING)
告诉您更喜欢坚持使用名称。因此数据库类型应该是varchar。您的JPA提供程序不知道PostgreSQL枚举。