[jboss-user] [JBoss Seam] - Deploy error on generated entities from postgres db
cfuser123
do-not-reply at jboss.com
Sun Nov 25 14:28:58 EST 2007
So far, so good w/ Seam 2.0. However, whenever I go to deploy the generated from an existing db that we're using, I get the following error;
|
| 10:44:45,852 INFO [TableMetadata] table found: public.avt_region_states
| 10:44:45,852 INFO [TableMetadata] columns: [id, state, code, guideid]
| 10:44:45,868 WARN [ServiceController] Problem starting service persistence.units:ear=seamtest.ear,unitName=seamtest
| javax.persistence.PersistenceException: org.hibernate.HibernateException: Wrong column type: guideid, expected: varchar(4)
| at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:720)
| at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
| at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:246)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| :
| <snip>
| :
| 10:44:51,050 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
|
| --- MBeans waiting for other MBeans ---
| ObjectName: persistence.units:ear=seamtest.ear,unitName=seamtest
| State: FAILED
| Reason: javax.persistence.PersistenceException: org.hibernate.HibernateException: Wrong column type: guideid, expected: varchar(4)
| I Depend On:
| jboss.jca:service=DataSourceBinding,name=seamtestDatasource
|
|
Oddly, when we use an older version of the Hibernate tools (using hbm.xml files vs. annotations), it works just fine. What am I missing here? TIA.
Specifics: Postgres 8.2 DB, Seam 2.0GA, Hibernate Tools 3.2.0.b10
The entities in question are;
|
| package com.r.model.seam;
| // Generated Nov 19, 2007 3:46:16 PM by Hibernate Tools 3.2.0.b10
|
|
| import javax.persistence.Column;
| import javax.persistence.Entity;
| import javax.persistence.FetchType;
| import javax.persistence.Id;
| import javax.persistence.JoinColumn;
| import javax.persistence.JoinColumns;
| import javax.persistence.ManyToOne;
| import javax.persistence.Table;
| import org.hibernate.validator.Length;
| import org.hibernate.validator.NotNull;
|
| /**
| * AvtRegionStates generated by hbm2java
| */
| @Entity
| @Table(name="avt_region_states"
| ,schema="public"
| )
| public class AvtRegionStates implements java.io.Serializable {
|
|
| private int id;
| private AvtRegions avtRegions;
| private String state;
|
| public AvtRegionStates() {
| }
|
| public AvtRegionStates(int id, AvtRegions avtRegions, String state) {
| this.id = id;
| this.avtRegions = avtRegions;
| this.state = state;
| }
|
| @Id
|
| @Column(name="id", unique=true, nullable=false)
| @NotNull
| public int getId() {
| return this.id;
| }
|
| public void setId(int id) {
| this.id = id;
| }
| @ManyToOne(fetch=FetchType.LAZY)
| @JoinColumns( {
| @JoinColumn(name="guideid", nullable=false),
| @JoinColumn(name="code", nullable=false) } )
| @NotNull
| public AvtRegions getAvtRegions() {
| return this.avtRegions;
| }
|
| public void setAvtRegions(AvtRegions avtRegions) {
| this.avtRegions = avtRegions;
| }
|
| @Column(name="state", nullable=false, length=0)
| @NotNull
| @Length(max=0)
| public String getState() {
| return this.state;
| }
|
| public void setState(String state) {
| this.state = state;
| }
|
|
|
|
| }
|
|
| package com.r.model.seam;
| // Generated Nov 19, 2007 3:46:16 PM by Hibernate Tools 3.2.0.b10
|
|
| import java.util.HashSet;
| import java.util.Set;
| import javax.persistence.AttributeOverride;
| import javax.persistence.AttributeOverrides;
| import javax.persistence.CascadeType;
| import javax.persistence.Column;
| import javax.persistence.EmbeddedId;
| import javax.persistence.Entity;
| import javax.persistence.FetchType;
| import javax.persistence.JoinColumn;
| import javax.persistence.ManyToOne;
| import javax.persistence.OneToMany;
| import javax.persistence.Table;
| import org.hibernate.validator.Length;
| import org.hibernate.validator.NotNull;
|
| /**
| * AvtRegions generated by hbm2java
| */
| @Entity
| @Table(name="avt_regions"
| ,schema="public"
| )
| public class AvtRegions implements java.io.Serializable {
|
|
| private AvtRegionsId id;
| private AvtGuides avtGuides;
| private String description;
| private Set<AvtRegionStates> avtRegionStateses = new HashSet<AvtRegionStates>(0);
| private Set<AvtResults> avtResultses = new HashSet<AvtResults>(0);
|
| public AvtRegions() {
| }
|
|
| public AvtRegions(AvtRegionsId id, AvtGuides avtGuides, String description) {
| this.id = id;
| this.avtGuides = avtGuides;
| this.description = description;
| }
| public AvtRegions(AvtRegionsId id, AvtGuides avtGuides, String description, Set<AvtRegionStates> avtRegionStateses, Set<AvtResults> avtResultses) {
| this.id = id;
| this.avtGuides = avtGuides;
| this.description = description;
| this.avtRegionStateses = avtRegionStateses;
| this.avtResultses = avtResultses;
| }
|
| @EmbeddedId
|
| @AttributeOverrides( {
| @AttributeOverride(name="guideid", column=@Column(name="guideid", nullable=false) ),
| @AttributeOverride(name="code", column=@Column(name="code", nullable=false, length=4) ) } )
| @NotNull
| public AvtRegionsId getId() {
| return this.id;
| }
|
| public void setId(AvtRegionsId id) {
| this.id = id;
| }
| @ManyToOne(fetch=FetchType.LAZY)
| @JoinColumn(name="guideid", nullable=false, insertable=false, updatable=false)
| @NotNull
| public AvtGuides getAvtGuides() {
| return this.avtGuides;
| }
|
| public void setAvtGuides(AvtGuides avtGuides) {
| this.avtGuides = avtGuides;
| }
|
| @Column(name="description", nullable=false, length=64)
| @NotNull
| @Length(max=64)
| public String getDescription() {
| return this.description;
| }
|
| public void setDescription(String description) {
| this.description = description;
| }
| @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="avtRegions")
| public Set<AvtRegionStates> getAvtRegionStateses() {
| return this.avtRegionStateses;
| }
|
| public void setAvtRegionStateses(Set<AvtRegionStates> avtRegionStateses) {
| this.avtRegionStateses = avtRegionStateses;
| }
| @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="avtRegions")
| public Set<AvtResults> getAvtResultses() {
| return this.avtResultses;
| }
|
| public void setAvtResultses(Set<AvtResults> avtResultses) {
| this.avtResultses = avtResultses;
| }
|
|
|
|
| }
|
The DB schema
|
|
| -- Table: avt_region_states
|
| -- DROP TABLE avt_region_states;
|
| CREATE TABLE avt_region_states
| (
| state character varying NOT NULL DEFAULT 64,
| guideid integer NOT NULL,
| code character varying(4) NOT NULL,
| id serial NOT NULL,
| CONSTRAINT auto_region_states_pk PRIMARY KEY (id),
| CONSTRAINT auc_reg_states_auc_reg_fk1 FOREIGN KEY (guideid, code)
| REFERENCES avt_regions (guideid, code) MATCH SIMPLE
| ON UPDATE NO ACTION ON DELETE NO ACTION
| )
| WITHOUT OIDS;
| ALTER TABLE avt_region_states OWNER TO postgres;
|
|
| -- Index: fki_auc_reg_states_auc_reg_fk1
|
| -- DROP INDEX fki_auc_reg_states_auc_reg_fk1;
|
| CREATE INDEX fki_auc_reg_states_auc_reg_fk1
| ON avt_region_states
| USING btree
| (guideid, code);
|
|
| -- Table: avt_regions
|
| -- DROP TABLE avt_regions;
|
| CREATE TABLE avt_regions
| (
| guideid integer NOT NULL,
| code character varying(4) NOT NULL,
| description character varying(64) NOT NULL,
| CONSTRAINT auc_regions_pk PRIMARY KEY (guideid, code),
| CONSTRAINT auc_regions_auc_guides FOREIGN KEY (guideid)
| REFERENCES avt_guides (avtguideid) MATCH SIMPLE
| ON UPDATE NO ACTION ON DELETE NO ACTION
| )
| WITHOUT OIDS;
| ALTER TABLE avt_regions OWNER TO postgres;
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107609#4107609
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107609
More information about the jboss-user
mailing list