The following bug has been logged on the website: Bug reference: 7734 Logged by: Rob Mitchell Email address: rmitch...@bzzagent.com PostgreSQL version: 9.1.4 Operating system: MacOS X 10.7 Description:
[1] Database script create type GENDER_ENUM as enum ('male', 'female', 'unknown'); create sequence my_seq INCREMENT 1 MINVALUE 1 MAXVALUE 2147483647 START 1; create table my_table ( id integer NOT NULL DEFAULT nextval('my_seq'), gender_type GENDER_ENUM NOT NULL, CONSTRAINT my_table_pkey PRIMARY KEY(id) ); insert into my_table (gender) values ('male'); insert into my_table (gender) values ('female'); insert into my_table (gender) values ('unknown'); [2] Persistence.xml file <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0" > <persistence-unit name="MyPersistenceUnit" transaction-type="RESOURCE_LOCAL"> <description>Persistence unit</description> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/mydb" /> <property name="javax.persistence.jdbc.user" value="user" /> <property name="javax.persistence.jdbc.password" value="password" /> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="hibernate.show_sql" value="false" /> <property name="hibernate.format_sql" value="false" /> <property name="prefer_sequence_per_entity" value="true" /> </properties> </persistence-unit> </persistence> [3] Entity code package com.mypackage; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.SequenceGenerator; import javax.persistence.Transient; @Entity(name="my_table") public class MyTable { @SequenceGenerator(name="generatorMySeq", sequenceName="my_seq", allocationSize=1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generatorMySeq") @Id @Column(name = "id") private long id; @Enumerated(EnumType.STRING) @Column(name="gender_type", columnDefinition="GENDER_ENUM") private GenderEnum gender; // getters and setters } [4] My Java enumerated type public enum GenderEnum { male, female, unknown; } [5] JUnit test public class Test_MyTable { @Test public void test_1() { EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPersistenceUnit"); EntityManager em = emf.createEntityManager(); MyTable myTable = new MyTable(); myTable.setGender(GenderEnum.male); em.getTransaction().begin(); em.persist(ac); em.getTransaction().commit(); em.close(); emf.close(); } } [6] Exception The exception is: Caused by: org.postgresql.util.PSQLException: ERROR: column “gender_type” is of type GENDER_ENUM but expression is of type character varying Hint: You will need to rewrite or cast the expression. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs