【发布时间】:2014-06-24 03:01:27
【问题描述】:
尝试学习如何使用 PostgeSQL 数据库,以及带有 ENUM 的 JAVA,但在转换时遇到了一些问题。
这是我的 sql:
CREATE TYPE enum_created_from AS ENUM ('CHAT', 'WEB');
ALTER TABLE contact ADD COLUMN created_from enum_created_from;
UPDATE contact SET created_from='WEB';
枚举文件:
public enum ContactCreatedFrom {
WEB, CHAT;
}
JAVA 实体文件:
@Column(name = "CREATED_FROM")
@Enumerated(EnumType.STRING)
private ContactCreatedFrom createdFrom;
偏离路线的 getter 和 setter。
使用 JUnit 的@Test 文件
@Test
public void testContactCreatedFrom()
{
try
{
@SuppressWarnings("unchecked")
List<Contact> contacts = (List<Contact>) db.createQuery("from Contact where id between 20 and 25").list();
for (Contact c : contacts)
{
System.out.println("Name: " + c.getName());
System.out.println ("Enum: " + c.getCreatedFrom());
}
} catch (Exception e)
{
System.out.println("Exception: " + e);
}
}
我仍然得到异常:
Exception: java.lang.ClassCastException: org.postgresql.util.PGobject cannot be cast to java.lang.String
谁能告诉我哪里错了。
问候
【问题讨论】:
-
对不起,但我认为问题不存在。在发布这个问题之前我已经尝试过了。
标签: java hibernate postgresql jsf junit