我可以帮您翻译中文,以下是需要翻译的内容:
我正在尝试学习如何使用PostgreSQL数据库和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;
当然,这里涉及到的是获取器和设置器。
使用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
请问有人能告诉我错在哪里吗?
谢谢!