CMP field for key not found: field name=company
skadakia May 20, 2002 10:02 PMHi,
I have got the latest source code (JBoss 3.1) last night and built it successfully. When I deploy my application EJB beans it gives me following stack trace:
2002-05-20 18:25:29,843 INFO [org.jboss.ejb.EjbModule] Creating WebClassLoader of class org.jboss.web.WebClassLoader
2002-05-20 18:25:29,873 INFO [org.jboss.ejb.EntityContainer] Creating
2002-05-20 18:25:29,893 INFO [org.jboss.ejb.plugins.EntityInstancePool] Creating
2002-05-20 18:25:29,893 INFO [org.jboss.ejb.plugins.EntityInstancePool] Created
2002-05-20 18:25:30,274 ERROR [org.jboss.ejb.EntityContainer] Initialization failed
org.jboss.deployment.DeploymentException: CMP field for key not found: field name=company
 at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationshipRoleMetaData.loadKeyFields(JDBCRelationshipRoleMetaData.java:374)
 at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationshipRoleMetaData.init(JDBCRelationshipRoleMetaData.java:157)
 at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:308)
 at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:383)
 at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:75)
 at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(JDBCStoreManager.java:602)
 at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager.java:322)
 at org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager.java:155)
 at org.jboss.ejb.EntityContainer.createService(EntityContainer.java:318)
 at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:170)
 at org.jboss.ejb.Container.invoke(Container.java:778)
 at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1024)
 at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
 at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:867)
 at $Proxy0.create(Unknown Source)
 at org.jboss.system.ServiceController.create(ServiceController.java:271)
 at java.lang.reflect.Method.invoke(Native Method)
 at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
 at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
 at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
 at $Proxy17.create(Unknown Source)
 at org.jboss.ejb.EjbModule.createService(EjbModule.java:390)
 at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:170)
I have attached, ejb-jar.xml, jbosscmp_jdbc.xml and jboss.xml. I will really appreciate if someone can help me diagnose this problem.
Somehow attachments not working, so here are the files:
ejb-jar.xml
===========
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<!-- Created by sundeep on January 21, 2002, 3:21 PM -->
<ejb-jar>
 JBoss application
 <display-name>Signup EJB</display-name>
 <resource-ref>
 The default MS SQLDS
 <res-ref-name>AIMDS</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 </resource-ref>
 <enterprise-beans>
 <ejb-name>Signup</ejb-name>
 com.atindiamall.ejb.signin.SignupHome
 com.atindiamall.ejb.signin.Signup
 <ejb-class>com.atindiamall.ejb.signin.SignupBean</ejb-class>
 <session-type>Stateful</session-type>
 <transaction-type>Container</transaction-type>
 <ejb-name>SequenceSession</ejb-name>
 <local-home>com.atindiamall.ejb.seqgen.SequenceSessionHome</local-home>
 com.atindiamall.ejb.seqgen.SequenceSession
 <ejb-class>com.atindiamall.ejb.seqgen.SequenceSessionBean</ejb-class>
 <session-type>Stateless</session-type>
 <transaction-type>Container</transaction-type>
 <env-entry>
 <env-entry-name>retryCount</env-entry-name>
 <env-entry-type>java.lang.Integer</env-entry-type>
 <env-entry-value>5</env-entry-value>
 </env-entry>
 <env-entry>
 <env-entry-name>blockSize</env-entry-name>
 <env-entry-type>java.lang.Integer</env-entry-type>
 <env-entry-value>10</env-entry-value>
 </env-entry>
 <ejb-name>Sequence</ejb-name>
 <local-home>com.atindiamall.ejb.seqgen.SequenceHome</local-home>
 com.atindiamall.ejb.seqgen.Sequence
 <ejb-class>com.atindiamall.ejb.seqgen.SequenceBean</ejb-class>
 <persistence-type>Container</persistence-type>
 <prim-key-class>java.lang.String</prim-key-class>
 False
 <cmp-version>2.x</cmp-version>
 <abstract-schema-name>Sequences</abstract-schema-name>
 <cmp-field><field-name>index</field-name></cmp-field>
 <cmp-field><field-name>name</field-name></cmp-field>
 <primkey-field>name</primkey-field>
 <transaction-type>Container</transaction-type>
 <ejb-name>Address</ejb-name>
 <local-home>com.atindiamall.ejb.biz.AddressHome</local-home>
 com.atindiamall.ejb.biz.Address
 <ejb-class>com.atindiamall.ejb.biz.AddressBean</ejb-class>
 <prim-key-class>java.lang.Integer</prim-key-class>
 False
 <persistence-type>Container</persistence-type>
 <cmp-version>2.x</cmp-version>
 <abstract-schema-name>Address</abstract-schema-name>
 <cmp-field><field-name>addressId</field-name></cmp-field>
 <cmp-field><field-name>addressOne</field-name></cmp-field>
 <cmp-field><field-name>addressTwo</field-name></cmp-field>
 <cmp-field><field-name>city</field-name></cmp-field>
 <cmp-field><field-name>state</field-name></cmp-field>
 <cmp-field><field-name>zipcode</field-name></cmp-field>
 <cmp-field><field-name>country</field-name></cmp-field>
 <cmp-field><field-name>phoneNumber</field-name></cmp-field>
 <cmp-field><field-name>extension</field-name></cmp-field>
 <cmp-field><field-name>faxNumber</field-name></cmp-field>
 <primkey-field>addressId</primkey-field>
 <transaction-type>Container</transaction-type>
 <ejb-name>Login</ejb-name>
 <local-home>com.atindiamall.ejb.login.LoginHome</local-home>
 com.atindiamall.ejb.login.Login
 <ejb-class>com.atindiamall.ejb.login.LoginBean</ejb-class>
 <prim-key-class>java.lang.Integer</prim-key-class>
 Flase
 <persistence-type>Container</persistence-type>
 <cmp-version>2.x</cmp-version>
 <abstract-schema-name>Logins</abstract-schema-name>
 <cmp-field><field-name>loginId</field-name></cmp-field>
 <cmp-field><field-name>company</field-name></cmp-field>
 <cmp-field><field-name>userStrId</field-name></cmp-field>
 <cmp-field><field-name>password</field-name></cmp-field>
 <cmp-field><field-name>salt</field-name></cmp-field>
 <cmp-field><field-name>hintQuestion</field-name></cmp-field>
 <cmp-field><field-name>hintAnswer</field-name></cmp-field>
 <cmp-field><field-name>hintSalt</field-name></cmp-field>
 <primkey-field>loginId</primkey-field>
 <transaction-type>Container</transaction-type>
 <query-method>
 <method-name>findByUserStrId</method-name>
 <method-params>
 <method-param>java.lang.String</method-param>
 </method-params>
 </query-method>
 <ejb-ql>
 <![CDATA[SELECT OBJECT(a) FROM Logins a WHERE a.userStrId = ?1]]>
 </ejb-ql>
 <ejb-name>Person</ejb-name>
 <local-home>com.atindiamall.ejb.biz.PersonHome</local-home>
 com.atindiamall.ejb.biz.Person
 <ejb-class>com.atindiamall.ejb.biz.PersonBean</ejb-class>
 <prim-key-class>java.lang.Integer</prim-key-class>
 False
 <persistence-type>Container</persistence-type>
 <cmp-version>2.x</cmp-version>
 <abstract-schema-name>Persons</abstract-schema-name>
 <cmp-field><field-name>personId</field-name></cmp-field>
 <cmp-field><field-name>roleId</field-name></cmp-field>
 <cmp-field><field-name>firstName</field-name></cmp-field>
 <cmp-field><field-name>middleInitial</field-name></cmp-field>
 <cmp-field><field-name>title</field-name></cmp-field>
 <cmp-field><field-name>homePhone</field-name></cmp-field>
 <cmp-field><field-name>emailAddr</field-name></cmp-field>
 <cmp-field><field-name>address</field-name></cmp-field>
 <cmp-field><field-name>shipAddress</field-name></cmp-field>
 <cmp-field><field-name>billAddress</field-name></cmp-field>
 <cmp-field><field-name>birthDate</field-name></cmp-field>
 <cmp-field><field-name>gender</field-name></cmp-field>
 <cmp-field><field-name>signupDate</field-name></cmp-field>
 <primkey-field>personId</primkey-field>
 <transaction-type>Container</transaction-type>
 <ejb-name>Company</ejb-name>
 <local-home>com.atindiamall.ejb.biz.CompanyHome</local-home>
 com.atindiamall.ejb.biz.Company
 <ejb-class>com.atindiamall.ejb.biz.CompanyBean</ejb-class>
 <prim-key-class>java.lang.Integer</prim-key-class>
 False
 <persistence-type>Container</persistence-type>
 <cmp-version>2.x</cmp-version>
 <abstract-schema-name>Companies</abstract-schema-name>
 <cmp-field><field-name>companyId</field-name></cmp-field>
 <cmp-field><field-name>businessName</field-name></cmp-field>
 <cmp-field><field-name>contactPerson</field-name></cmp-field>
 <cmp-field><field-name>address</field-name></cmp-field>
 <cmp-field><field-name>offercodeId</field-name></cmp-field>
 <cmp-field><field-name>signupDate</field-name></cmp-field>
 <cmp-field><field-name>terminationDate</field-name></cmp-field>
 <cmp-field><field-name>terminationReason</field-name></cmp-field>
 <primkey-field>companyId</primkey-field>
 <transaction-type>Container</transaction-type>
 <ejb-name>User</ejb-name>
 <local-home>com.atindiamall.ejb.user.UserHome</local-home>
 com.atindiamall.ejb.user.User
 <ejb-class>com.atindiamall.ejb.user.UserBean</ejb-class>
 <prim-key-class>com.atindiamall.ejb.biz.Person</prim-key-class>
 False
 <cmp-version>2.x</cmp-version>
 <persistence-type>Container</persistence-type>
 <abstract-schema-name>Users</abstract-schema-name>
 <cmp-field><field-name>person</field-name></cmp-field>
 <cmp-field><field-name>login</field-name></cmp-field>
 <primkey-field>person</primkey-field>
 <transaction-type>Container</transaction-type>
 <query-method>
 <method-name>findByLoginId</method-name>
 <method-params>
 <method-param>com.atindiamall.ejb.login.Login</method-param>
 </method-params>
 </query-method>
 <ejb-ql>
 <![CDATA[SELECT OBJECT(b) FROM Users b WHERE b.login = ?1]]>
 </ejb-ql>
 </enterprise-beans>
 <assembly-descriptor>
 <container-transaction>
 <ejb-name>Signup</ejb-name>
 <method-name>*</method-name>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 <container-transaction>
 <ejb-name>Sequence</ejb-name>
 <method-name>getValueAfterIncrementingBy</method-name>
 <trans-attribute>RequiresNew</trans-attribute>
 </container-transaction>
 <container-transaction>
 <ejb-name>SequenceSession</ejb-name>
 <method-name>*</method-name>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 <container-transaction>
 <ejb-name>Company</ejb-name>
 <method-intf>Local</method-intf>
 <method-name>*</method-name>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 <container-transaction>
 <ejb-name>Login</ejb-name>
 <method-intf>Local</method-intf>
 <method-name>*</method-name>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 <container-transaction>
 <ejb-name>Person</ejb-name>
 <method-intf>Local</method-intf>
 <method-name>*</method-name>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 <container-transaction>
 <ejb-name>User</ejb-name>
 <method-intf>Local</method-intf>
 <method-name>*</method-name>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 </assembly-descriptor>
 <ejb-relation>
 <ejb-relation-name>Login-Company</ejb-relation-name>
 <!-- first half of relationship, Login side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Login-to-Company
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Login</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>company</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Company side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Company-has-login
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Company</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>User-Login</ejb-relation-name>
 <!-- first half of relationship, User side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 User-has-Login
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>User</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>login</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Login side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Login-for-User
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Login</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Company-Address</ejb-relation-name>
 <!-- first half of relationship, Company side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Company-has-Address
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Company</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>address</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Address-for-Company
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Address</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Company-Person</ejb-relation-name>
 <!-- first half of relationship, User side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Company-has-Contact-Person-or-User
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Company</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>contactPerson</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Contact-Person-or-User-of-Company
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Person</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Person-Address</ejb-relation-name>
 <!-- first half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Person-has-Address
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Person</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>address</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Address-of-Person
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Address</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Person-Shipping-Address</ejb-relation-name>
 <!-- first half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Person-has-ShippingAddress
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Person</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>shippingAddress</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 ShippingAddress-of-Person
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Address</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Person-Billing-Address</ejb-relation-name>
 <!-- first half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Person-has-BillingAddress
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Person</ejb-name>
 </relationship-role-source>
 <cmr-field><cmr-field-name>billingAddress</cmr-field-name></cmr-field>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 BillingAddress-of-Person
 </ejb-relationship-role-name>
 One
 <relationship-role-source>
 <ejb-name>Address</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
</ejb-jar>
jbosscmp-jdbc.xml
=================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">
<jbosscmp-jdbc>
 <enterprise-beans>
 <ejb-name>Sequence</ejb-name>
 <table-name>SEQUENCES</table-name>
 <cmp-field>
 <field-name>index</field-name>
 <column-name>SEQUENCECOUNTER</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>name</field-name>
 <column-name>SEQUENCENAME</column-name>
 </cmp-field>
 <ejb-name>Address</ejb-name>
 <table-name>ADDRESS</table-name>
 <cmp-field>
 <field-name>addressId</field-name>
 <column-name>ADDRESSID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>addressOne</field-name>
 <column-name>ADDRESSONE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>addressTwo</field-name>
 <column-name>ADDRESSTWO</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>city</field-name>
 <column-name>CITY</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>state</field-name>
 <column-name>STATE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>zipcode</field-name>
 <column-name>ZIPCODE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>country</field-name>
 <column-name>COUNTRY</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>phoneNumber</field-name>
 <column-name>PHONE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>extension</field-name>
 <column-name>EXTENSION</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>faxNumber</field-name>
 <column-name>FAX</column-name>
 </cmp-field>
 <ejb-name>Login</ejb-name>
 <table-name>LOGINS</table-name>
 <cmp-field>
 <field-name>loginId</field-name>
 <column-name>LOGINID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>company</field-name>
 <column-name>COMPANYID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>userStrId</field-name>
 <column-name>USERSTRID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>password</field-name>
 <column-name>PASSWORD</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>salt</field-name>
 <column-name>SALT</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>hintQuestion</field-name>
 <column-name>HINTQUESTION</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>hintAnswer</field-name>
 <column-name>HINTANSWER</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>hintSalt</field-name>
 <column-name>HINTSALT</column-name>
 </cmp-field>
 <ejb-name>Person</ejb-name>
 <table-name>PERSONS</table-name>
 <cmp-field>
 <field-name>personId</field-name>
 <column-name>PERSONID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>roleId</field-name>
 <column-name>ROLEID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>firstName</field-name>
 <column-name>FIRSTNAME</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>middleInitial</field-name>
 <column-name>MI</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>title</field-name>
 <column-name>TITLE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>homePhone</field-name>
 <column-name>HOMEPHONE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>emailAddr</field-name>
 <column-name>EMAILADDR</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>address</field-name>
 <column-name>ADDRESSID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>shipAddress</field-name>
 <column-name>SHIPPINGADDRESSID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>billAddress</field-name>
 <column-name>BILLINGADDRESSID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>birthDate</field-name>
 <column-name>BIRTHDATE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>gender</field-name>
 <column-name>GENDER</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>signupDate</field-name>
 <column-name>SIGNUPDATE</column-name>
 </cmp-field>
 <ejb-name>Company</ejb-name>
 <table-name>COMPANIES</table-name>
 <cmp-field>
 <field-name>companyId</field-name>
 <column-name>COMPANYID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>businessName</field-name>
 <column-name>BUSINESSNAME</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>contactPerson</field-name>
 <column-name>CONTACTID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>address</field-name>
 <column-name>ADDRESSID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>offercodeId</field-name>
 <column-name>OFFERCODEID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>signupDate</field-name>
 <column-name>SIGNUPDATE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>terminationDate</field-name>
 <column-name>TERMINATIONDATE</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>terminationReason</field-name>
 <column-name>TerminationReason</column-name>
 </cmp-field>
 <ejb-name>User</ejb-name>
 <table-name>USERS</table-name>
 <cmp-field>
 <field-name>person</field-name>
 <column-name>PERSONID</column-name>
 </cmp-field>
 <cmp-field>
 <field-name>login</field-name>
 <column-name>LOGINID</column-name>
 </cmp-field>
 </enterprise-beans>
 <ejb-relation>
 <ejb-relation-name>Login-Company</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, Login side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Login-to-Company
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>company</field-name>
 <column-name>CompanyId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Company side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Company-has-login
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>User-Login</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, User side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 User-has-Login
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>login</field-name>
 <column-name>LoginId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Login side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Login-for-User
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Company-Address</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, Company side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Company-has-Address
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>address</field-name>
 <column-name>AddressId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Address-for-Company
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Company-Person</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, User side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Company-has-Contact-Person-or-User
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>contactPerson</field-name>
 <column-name>ContactId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Contact-Person-or-User-of-Company
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Person-Address</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Person-has-Address
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>address</field-name>
 <column-name>AddressId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Address-of-Person
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Person-Shipping-Address</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Person-has-ShippingAddress
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>shippingAddress</field-name>
 <column-name>ShippingAddressId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 ShippingAddress-of-Person
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
 <ejb-relation>
 <ejb-relation-name>Person-Billing-Address</ejb-relation-name>
 <foreign-key-mapping/>
 <!-- first half of relationship, Person side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 Person-has-BillingAddress
 </ejb-relationship-role-name>
 <key-fields>
 <key-field>
 <field-name>billingAddress</field-name>
 <column-name>BillingAddressId</column-name>
 </key-field>
 </key-fields>
 </ejb-relationship-role>
 <!-- second half of relationship, Address side -->
 <ejb-relationship-role>
 <ejb-relationship-role-name>
 BillingAddress-of-Person
 </ejb-relationship-role-name>
 <key-fields/>
 </ejb-relationship-role>
 </ejb-relation>
</jbosscmp-jdbc>
Thank You.
Sundeep