org.postgresql.util.PGobject无法强制转换为java.lang.String

时间:2014-05-07 08:29:46

标签: java hibernate postgresql jsf junit

尝试学习如何使用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;

当然是吸毒者和二传手。

使用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

任何人都可以告诉我,我错在哪里。

此致

0 个答案:

没有答案