On startup of my application on weblogic 8.1, the error i get is
------------------------------------------------------------------------------
- Mapping collection: com.usg.domain.hr.HrJobClass.hrJobDescs -> HR_JOB_DESC
- processing one-to-one association property references
- processing foreign key constraints
- property mapping has wrong number of columns: com.usg.domain.hr.HrJobClass.shortDesc type: object
net.sf.hibernate.MappingException: property mapping has wrong number of columns: com.usg.domain.hr.HrJobClass.shortDesc type: object
at net.sf.hibernate.mapping.PersistentClass.validate(PersistentClass.java:269)
at net.sf.hibernate.mapping.RootClass.validate(RootClass.java:199)
at net.sf.hibernate.cfg.Configuration.validate(Configuration.java:576)
at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:733)
at com.usg.weblogic.WLSStartup.createSessionFactory(WLSStartup.java:79)
at com.usg.weblogic.WLSStartup.doBind(WLSStartup.java:65)
at com.usg.weblogic.WLSStartup.startup(WLSStartup.java:43)
at com.usg.weblogic.WLSStartup.main(WLSStartup.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at weblogic.j2ee.AppLifecycleListenerInternal.invokeMain(AppLifecycleListenerInternal.java:61)
at weblogic.j2ee.AppLifecycleListenerInternal.preStart(AppLifecycleListenerInternal.java:34)
at weblogic.j2ee.ListenerInvocationAction.run(ListenerInvocationAction.java:50)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.j2ee.J2EEApplicationContainer.notifySecureListener(J2EEApplicationContainer.java:4454)
at weblogic.j2ee.J2EEApplicationContainer.notify(J2EEApplicationContainer.java:4431)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:985)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:822)
at weblogic.management.deploy.slave.SlaveDeployer$Application.prepare(SlaveDeployer.java:3085)
at weblogic.management.deploy.slave.SlaveDeployer.prepareAllApplications(SlaveDeployer.java:930)
at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:398)
at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:230)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:964)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:359)
at weblogic.Server.main(Server.java:32)
- Out WLSStartup.startup
----------------------------------------------------------------------------
I have 2 tables (Hr_Job_Class and HR_JOB_DESC).
Datamodel for HR_JOB_CLASS is:
CLASS_ID (Primary key)
SHORT_DESC
LONG_DESC
Data model for HR_JOB_DESC is:
JOB_DESC_ID (primary key)
CLASS_ID (foreign key: refers to class_id of HR_JOB_CLASS)
SHORT_DESC
LONG_DESC
--------------------------------------------------------------
The hibernate mapping files for HR_JOB_CLASS is
--------------------------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
<!--
Created by the Middlegen Hibernate plugin
http://boss.bekk.no/boss/middlegen/
http://hibernate.sourceforge.net/
-->
<class
name="com.usg.domain.hr.HrJobClass"
table="HR_JOB_CLASS"
>
<id
name="classId"
type="java.lang.Integer"
column="CLASS_ID"
>
<generator class="assigned" />
</id>
<property
name="shortDesc"
type="java.lang.Object"
column="SHORT_DESC"
not-null="true"
length="256"
/>
<property
name="longDesc"
type="java.lang.Object"
column="LONG_DESC"
not-null="true"
length="4000"
/>
<!-- associations -->
<!-- bi-directional one-to-many association to HrJobDesc -->
<set
name="hrJobDescs"
lazy="true"
inverse="true"
>
<key>
<column name="CLASS_ID" />
</key>
<one-to-many
class="com.usg.domain.hr.HrJobDesc"
/>
</set>
</class>
</hibernate-mapping>
---------------------------------------------------
The hibernate mapping file for HR_JOB_DESC is
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
<!--
Created by the Middlegen Hibernate plugin
http://boss.bekk.no/boss/middlegen/
http://hibernate.sourceforge.net/
-->
<class
name="com.usg.domain.hr.HrJobDesc"
table="HR_JOB_DESC"
>
<id
name="jobDescId"
type="java.lang.Integer"
column="JOB_DESC_ID"
>
<generator class="assigned" />
</id>
<property
name="shortDesc"
type="java.lang.Object"
column="SHORT_DESC"
not-null="true"
length="256"
/>
<property
name="longDesc"
type="java.lang.Object"
column="LONG_DESC"
not-null="true"
length="4000"
/>
<!-- associations -->
<!-- bi-directional many-to-one association to HrJobClass -->
<many-to-one
name="hrJobClass"
class="com.usg.domain.hr.HrJobClass"
not-null="true"
>
<column name="CLASS_ID" />
</many-to-one>
</class>
</hibernate-mapping>
-----------------------------------------------------
Hibernate class for HR_JOB_CLASS is
import java.io.Serializable;
import java.util.Set;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class HrJobClass implements Serializable {
/** identifier field */
private Integer classId;
/** persistent field */
private Object shortDesc;
/** persistent field */
private Object longDesc;
/** persistent field */
private Set hrJobDescs;
/** full constructor */
public HrJobClass(Integer classId, Object shortDesc, Object longDesc, Set hrJobDescs) {
this.classId = classId;
this.shortDesc = shortDesc;
this.longDesc = longDesc;
this.hrJobDescs = hrJobDescs;
}
/** default constructor */
public HrJobClass() {
}
public Integer getClassId() {
return this.classId;
}
public void setClassId(Integer classId) {
this.classId = classId;
}
public Object getShortDesc() {
return this.shortDesc;
}
public void setShortDesc(Object shortDesc) {
this.shortDesc = shortDesc;
}
public Object getLongDesc() {
return this.longDesc;
}
public void setLongDesc(Object longDesc) {
this.longDesc = longDesc;
}
public Set getHrJobDescs() {
return this.hrJobDescs;
}
public void setHrJobDescs(Set hrJobDescs) {
this.hrJobDescs = hrJobDescs;
}
public String toString() {
return new ToStringBuilder(this)
.append("classId", getClassId())
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof HrJobClass) ) return false;
HrJobClass castOther = (HrJobClass) other;
return new EqualsBuilder()
.append(this.getClassId(), castOther.getClassId())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getClassId())
.toHashCode();
}
}
----------------------------------
Hibernate java class for HR_JOB_DESC is
package com.usg.domain.hr;
import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class HrJobDesc implements Serializable {
/** identifier field */
private Integer jobDescId;
/** persistent field */
private Object shortDesc;
/** persistent field */
private Object longDesc;
/** persistent field */
private com.usg.domain.hr.HrJobClass hrJobClass;
/** full constructor */
public HrJobDesc(Integer jobDescId, Object shortDesc, Object longDesc, com.usg.domain.hr.HrJobClass hrJobClass) {
this.jobDescId = jobDescId;
this.shortDesc = shortDesc;
this.longDesc = longDesc;
this.hrJobClass = hrJobClass;
}
/** default constructor */
public HrJobDesc() {
}
public Integer getJobDescId() {
return this.jobDescId;
}
public void setJobDescId(Integer jobDescId) {
this.jobDescId = jobDescId;
}
public Object getShortDesc() {
return this.shortDesc;
}
public void setShortDesc(Object shortDesc) {
this.shortDesc = shortDesc;
}
public Object getLongDesc() {
return this.longDesc;
}
public void setLongDesc(Object longDesc) {
this.longDesc = longDesc;
}
public com.usg.domain.hr.HrJobClass getHrJobClass() {
return this.hrJobClass;
}
public void setHrJobClass(com.usg.domain.hr.HrJobClass hrJobClass) {
this.hrJobClass = hrJobClass;
}
public String toString() {
return new ToStringBuilder(this)
.append("jobDescId", getJobDescId())
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof HrJobDesc) ) return false;
HrJobDesc castOther = (HrJobDesc) other;
return new EqualsBuilder()
.append(this.getJobDescId(), castOther.getJobDescId())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getJobDescId())
.toHashCode();
}
}
[/list]