vilabs
asked on
Auto Create table in JDeveloper
I am writing EJB application and used CMR. To develop this application I am using JDeveloper (Oracle 9i-OC4J). When I run this application, it autometically creates CMR tables. But I don't want to that JDeveloper should create auto table, for that I have configured in application.xml
<orion-application autocreate-tables="false" ...>. still now it creates auto table and generates identifire is to long error.
I don't want to auto create table, I want to cofigure that it uses our databse tables. so
give any solution what will be configuration, as soon as possible.
ASKER
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<description>Entity Bean ( CMP )</description>
<display-name>Patient</dis play-name>
<ejb-name>Patient</ejb-nam e>
<home>com.vilabs.ipd.ejb.e ntity.Pati entHome</h ome>
<remote>com.vilabs.ipd.ejb .entity.Pa tient</rem ote>
<local-home>com.vilabs.ipd .ejb.entit y.PatientL ocalHome</ local-home >
<local>com.vilabs.ipd.ejb. entity.Pat ientLocal< /local>
<ejb-class>com.vilabs.ipd. ejb.entity .PatientBe an</ejb-cl ass>
<persistence-type>Containe r</persist ence-type>
<prim-key-class>java.lang. Long</prim -key-class >
<reentrant>False</reentran t>
<cmp-version>2.x</cmp-vers ion>
<abstract-schema-name>Pati ent</abstr act-schema -name>
<cmp-field>
<field-name>patient_id</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>mrd_no</field- name>
</cmp-field>
<cmp-field>
<field-name>casualty_no</f ield-name>
</cmp-field>
<cmp-field>
<field-name>opd_no</field- name>
</cmp-field>
<cmp-field>
<field-name>first_name</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>last_name</fie ld-name>
</cmp-field>
<cmp-field>
<field-name>sex</field-nam e>
</cmp-field>
<cmp-field>
<field-name>marital_status </field-na me>
</cmp-field>
<cmp-field>
<field-name>religion</fiel d-name>
</cmp-field>
<cmp-field>
<field-name>guardian_relat ion</field -name>
</cmp-field>
<cmp-field>
<field-name>guardian_first _name</fie ld-name>
</cmp-field>
<cmp-field>
<field-name>guardian_last_ name</fiel d-name>
</cmp-field>
<cmp-field>
<field-name>phone_number</ field-name >
</cmp-field>
<cmp-field>
<field-name>occupation</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>income</field- name>
</cmp-field>
<cmp-field>
<field-name>inactive</fiel d-name>
</cmp-field>
<cmp-field>
<field-name>address_detail _id</field -name>
</cmp-field>
<cmp-field>
<field-name>last_updated</ field-name >
</cmp-field>
<cmp-field>
<field-name>updated_by</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>active_flag</f ield-name>
</cmp-field>
<cmp-field>
<field-name>age_year</fiel d-name>
</cmp-field>
<cmp-field>
<field-name>age_months</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>age_days</fiel d-name>
</cmp-field>
<cmp-field>
<field-name>emailid</field -name>
</cmp-field>
<cmp-field>
<field-name>patient_catego ry</field- name>
</cmp-field>
<primkey-field>patient_id< /primkey-f ield>
</entity>
<entity>
<description>Entity Bean ( CMP )</description>
<display-name>Patient_addr ess</displ ay-name>
<ejb-name>Patient_address< /ejb-name>
<home>com.vilabs.ipd.ejb.e ntity.Pati ent_addres sHome</hom e>
<remote>com.vilabs.ipd.ejb .entity.Pa tient_addr ess</remot e>
<local-home>com.vilabs.ipd .ejb.entit y.Patient_ addressLoc alHome</lo cal-home>
<local>com.vilabs.ipd.ejb. entity.Pat ient_addre ssLocal</l ocal>
<ejb-class>com.vilabs.ipd. ejb.entity .Patient_a ddressBean </ejb-clas s>
<persistence-type>Containe r</persist ence-type>
<prim-key-class>java.lang. Long</prim -key-class >
<reentrant>False</reentran t>
<cmp-version>2.x</cmp-vers ion>
<abstract-schema-name>Pati ent_addres s</abstrac t-schema-n ame>
<cmp-field>
<field-name>address_id</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>address</field -name>
</cmp-field>
<cmp-field>
<field-name>address2</fiel d-name>
</cmp-field>
<cmp-field>
<field-name>city</field-na me>
</cmp-field>
<cmp-field>
<field-name>state</field-n ame>
</cmp-field>
<cmp-field>
<field-name>country</field -name>
</cmp-field>
<cmp-field>
<field-name>pin</field-nam e>
</cmp-field>
<cmp-field>
<field-name>last_updated</ field-name >
</cmp-field>
<cmp-field>
<field-name>updated_by</fi eld-name>
</cmp-field>
<cmp-field>
<field-name>active_flag</f ield-name>
</cmp-field>
<primkey-field>address_id< /primkey-f ield>
<ejb-local-ref>
<ejb-ref-name>PatientLocal </ejb-ref- name>
<ejb-ref-type>Entity</ejb- ref-type>
<local-home>com.vilabs.ipd .ejb.entit y.PatientL ocalHome</ local-home >
<local>com.vilabs.ipd.ejb. entity.Pat ientLocal< /local>
<ejb-link>Patient</ejb-lin k>
</ejb-local-ref>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>Patient _Address</ ejb-relati on-name>
<ejb-relationship-role>
<multiplicity>One</multipl icity>
<relationship-role-source>
<ejb-name>Patient</ejb-nam e>
</relationship-role-source >
<cmr-field>
<cmr-field-name>pt_Address </cmr-fiel d-name>
<cmr-field-type>java.util. Collection </cmr-fiel d-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<multiplicity>Many</multip licity>
<relationship-role-source>
<ejb-name>Patient_address< /ejb-name>
</relationship-role-source >
<cmr-field>
<cmr-field-name>patient</c mr-field-n ame>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
</ejb-jar>
orion.xml
<entity-deployment name="Patient" data-source="jdbc/oracleDS " table="PATIENT">
<primkey-mapping>
<cmp-field-mapping name="patient_id" persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
</primkey-mapping>
<cmp-field-mapping name="patient_id" persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
<cmp-field-mapping name="mrd_no" persistence-name="MRD_NO" persistence-type="VARCHAR2 (10)"/>
<cmp-field-mapping name="casualty_no" persistence-name="CASUALTY _NO" persistence-type="VARCHAR2 (10)"/>
<cmp-field-mapping name="opd_no" persistence-name="OPD_NO" persistence-type="VARCHAR2 (10)"/>
<cmp-field-mapping name="first_name" persistence-name="FIRST_NA ME" persistence-type="VARCHAR2 (30)"/>
<cmp-field-mapping name="last_name" persistence-name="LAST_NAM E" persistence-type="VARCHAR2 (30)"/>
<cmp-field-mapping name="sex" persistence-name="SEX" persistence-type="VARCHAR2 (15)"/>
<cmp-field-mapping name="marital_status" persistence-name="MARITAL_ STATUS" persistence-type="VARCHAR2 (20)"/>
<cmp-field-mapping name="religion" persistence-name="RELIGION " persistence-type="VARCHAR2 (30)"/>
<cmp-field-mapping name="guardian_relation" persistence-name="GUARDIAN _RELATION" persistence-type="VARCHAR2 (5)"/>
<cmp-field-mapping name="guardian_first_name" persistence-name="GUARDIAN _FIRST_NAM E" persistence-type="VARCHAR2 (50)"/>
<cmp-field-mapping name="guardian_last_name" persistence-name="GUARDIAN _LAST_NAME " persistence-type="VARCHAR2 (50)"/>
<cmp-field-mapping name="phone_number" persistence-name="PHONE_NU MBER" persistence-type="VARCHAR2 (14)"/>
<cmp-field-mapping name="occupation" persistence-name="OCCUPATI ON" persistence-type="VARCHAR2 (30)"/>
<cmp-field-mapping name="income" persistence-name="INCOME" persistence-type="VARCHAR2 (15)"/>
<cmp-field-mapping name="inactive" persistence-name="INACTIVE " persistence-type="VARCHAR2 (6)"/>
<cmp-field-mapping name="address_detail_id" persistence-name="ADDRESS_ DETAIL_ID" persistence-type="NUMBER(2 0)"/>
<cmp-field-mapping name="last_updated" persistence-name="LAST_UPD ATED" persistence-type="DATE"/>
<cmp-field-mapping name="updated_by" persistence-name="UPDATED_ BY" persistence-type="NUMBER(2 0)"/>
<cmp-field-mapping name="active_flag" persistence-name="ACTIVE_F LAG" persistence-type="CHAR(1)" />
<cmp-field-mapping name="age_year" persistence-name="AGE_YEAR " persistence-type="NUMBER(4 )"/>
<cmp-field-mapping name="age_months" persistence-name="AGE_MONT HS" persistence-type="NUMBER(4 )"/>
<cmp-field-mapping name="age_days" persistence-name="AGE_DAYS " persistence-type="NUMBER(4 )"/>
<cmp-field-mapping name="emailid" persistence-name="EMAILID" persistence-type="VARCHAR2 (30)"/>
<cmp-field-mapping name="patient_category" persistence-name="PATIENT_ CATEGORY" persistence-type="VARCHAR2 (30)"/>
<cmp-field-mapping name="pt_Address">
<collection-mapping table="PATIENT_ADDRESS">
<primkey-mapping>
<cmp-field-mapping>
<entity-ref home="Patient">
<cmp-field-mapping persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
</entity-ref>
</cmp-field-mapping>
</primkey-mapping>
<value-mapping type="com.vilabs.ipd.ejb.e ntity.Pati ent_addres sLocal">
<cmp-field-mapping>
<entity-ref home="Patient_address">
<cmp-field-mapping persistence-name="ADDRESS_ ID" persistence-type="NUMBER(2 0)"/>
</entity-ref>
</cmp-field-mapping>
</value-mapping>
</collection-mapping>
</cmp-field-mapping>
</entity-deployment>
<entity-deployment name="Patient_address" data-source="jdbc/oracleDS " table="PATIENT_ADDRESS">
<primkey-mapping>
<cmp-field-mapping name="address_id" persistence-name="ADDRESS_ ID" persistence-type="NUMBER(2 0)"/>
</primkey-mapping>
<cmp-field-mapping name="address_id" persistence-name="ADDRESS_ ID" persistence-type="NUMBER(2 0)"/>
<cmp-field-mapping name="address" persistence-name="ADDRESS" persistence-type="VARCHAR2 (60)"/>
<cmp-field-mapping name="address2" persistence-name="ADDRESS2 " persistence-type="VARCHAR2 (60)"/>
<cmp-field-mapping name="city" persistence-name="CITY" persistence-type="VARCHAR2 (15)"/>
<cmp-field-mapping name="state" persistence-name="STATE" persistence-type="VARCHAR2 (15)"/>
<cmp-field-mapping name="country" persistence-name="COUNTRY" persistence-type="VARCHAR2 (15)"/>
<cmp-field-mapping name="pin" persistence-name="PIN" persistence-type="VARCHAR2 (8)"/>
<cmp-field-mapping name="last_updated" persistence-name="LAST_UPD ATED" persistence-type="DATE"/>
<cmp-field-mapping name="updated_by" persistence-name="UPDATED_ BY" persistence-type="NUMBER(2 0)"/>
<cmp-field-mapping name="active_flag" persistence-name="ACTIVE_F LAG" persistence-type="CHAR(1)" />
<cmp-field-mapping name="patient_id" persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
<cmp-field-mapping name="patient">
<entity-ref home="Patient">
<cmp-field-mapping persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
</entity-ref>
</cmp-field-mapping>
</entity-deployment>
This code is similar for another entity bean Emeregency_contect_address and primary key for this bean is address_id when I make one to many relatioship between patient and Emeregency_contect_address entity bean then JDdeveloper creates one more table, which contain two fields both field are primary key of each bean and name of field is combination of table name + primary key field name . so its field lenght become greater than 30 character. and gives identifier is to long error.
But I don't want that JDeveloper should create auto table, for that I have configure that in application.xml autocreatetable attribute false. but its not working.
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<description>Entity Bean ( CMP )</description>
<display-name>Patient</dis
<ejb-name>Patient</ejb-nam
<home>com.vilabs.ipd.ejb.e
<remote>com.vilabs.ipd.ejb
<local-home>com.vilabs.ipd
<local>com.vilabs.ipd.ejb.
<ejb-class>com.vilabs.ipd.
<persistence-type>Containe
<prim-key-class>java.lang.
<reentrant>False</reentran
<cmp-version>2.x</cmp-vers
<abstract-schema-name>Pati
<cmp-field>
<field-name>patient_id</fi
</cmp-field>
<cmp-field>
<field-name>mrd_no</field-
</cmp-field>
<cmp-field>
<field-name>casualty_no</f
</cmp-field>
<cmp-field>
<field-name>opd_no</field-
</cmp-field>
<cmp-field>
<field-name>first_name</fi
</cmp-field>
<cmp-field>
<field-name>last_name</fie
</cmp-field>
<cmp-field>
<field-name>sex</field-nam
</cmp-field>
<cmp-field>
<field-name>marital_status
</cmp-field>
<cmp-field>
<field-name>religion</fiel
</cmp-field>
<cmp-field>
<field-name>guardian_relat
</cmp-field>
<cmp-field>
<field-name>guardian_first
</cmp-field>
<cmp-field>
<field-name>guardian_last_
</cmp-field>
<cmp-field>
<field-name>phone_number</
</cmp-field>
<cmp-field>
<field-name>occupation</fi
</cmp-field>
<cmp-field>
<field-name>income</field-
</cmp-field>
<cmp-field>
<field-name>inactive</fiel
</cmp-field>
<cmp-field>
<field-name>address_detail
</cmp-field>
<cmp-field>
<field-name>last_updated</
</cmp-field>
<cmp-field>
<field-name>updated_by</fi
</cmp-field>
<cmp-field>
<field-name>active_flag</f
</cmp-field>
<cmp-field>
<field-name>age_year</fiel
</cmp-field>
<cmp-field>
<field-name>age_months</fi
</cmp-field>
<cmp-field>
<field-name>age_days</fiel
</cmp-field>
<cmp-field>
<field-name>emailid</field
</cmp-field>
<cmp-field>
<field-name>patient_catego
</cmp-field>
<primkey-field>patient_id<
</entity>
<entity>
<description>Entity Bean ( CMP )</description>
<display-name>Patient_addr
<ejb-name>Patient_address<
<home>com.vilabs.ipd.ejb.e
<remote>com.vilabs.ipd.ejb
<local-home>com.vilabs.ipd
<local>com.vilabs.ipd.ejb.
<ejb-class>com.vilabs.ipd.
<persistence-type>Containe
<prim-key-class>java.lang.
<reentrant>False</reentran
<cmp-version>2.x</cmp-vers
<abstract-schema-name>Pati
<cmp-field>
<field-name>address_id</fi
</cmp-field>
<cmp-field>
<field-name>address</field
</cmp-field>
<cmp-field>
<field-name>address2</fiel
</cmp-field>
<cmp-field>
<field-name>city</field-na
</cmp-field>
<cmp-field>
<field-name>state</field-n
</cmp-field>
<cmp-field>
<field-name>country</field
</cmp-field>
<cmp-field>
<field-name>pin</field-nam
</cmp-field>
<cmp-field>
<field-name>last_updated</
</cmp-field>
<cmp-field>
<field-name>updated_by</fi
</cmp-field>
<cmp-field>
<field-name>active_flag</f
</cmp-field>
<primkey-field>address_id<
<ejb-local-ref>
<ejb-ref-name>PatientLocal
<ejb-ref-type>Entity</ejb-
<local-home>com.vilabs.ipd
<local>com.vilabs.ipd.ejb.
<ejb-link>Patient</ejb-lin
</ejb-local-ref>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>Patient
<ejb-relationship-role>
<multiplicity>One</multipl
<relationship-role-source>
<ejb-name>Patient</ejb-nam
</relationship-role-source
<cmr-field>
<cmr-field-name>pt_Address
<cmr-field-type>java.util.
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<multiplicity>Many</multip
<relationship-role-source>
<ejb-name>Patient_address<
</relationship-role-source
<cmr-field>
<cmr-field-name>patient</c
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
</ejb-jar>
orion.xml
<entity-deployment name="Patient" data-source="jdbc/oracleDS
<primkey-mapping>
<cmp-field-mapping name="patient_id" persistence-name="PATIENT_
</primkey-mapping>
<cmp-field-mapping name="patient_id" persistence-name="PATIENT_
<cmp-field-mapping name="mrd_no" persistence-name="MRD_NO" persistence-type="VARCHAR2
<cmp-field-mapping name="casualty_no" persistence-name="CASUALTY
<cmp-field-mapping name="opd_no" persistence-name="OPD_NO" persistence-type="VARCHAR2
<cmp-field-mapping name="first_name" persistence-name="FIRST_NA
<cmp-field-mapping name="last_name" persistence-name="LAST_NAM
<cmp-field-mapping name="sex" persistence-name="SEX" persistence-type="VARCHAR2
<cmp-field-mapping name="marital_status" persistence-name="MARITAL_
<cmp-field-mapping name="religion" persistence-name="RELIGION
<cmp-field-mapping name="guardian_relation" persistence-name="GUARDIAN
<cmp-field-mapping name="guardian_first_name"
<cmp-field-mapping name="guardian_last_name" persistence-name="GUARDIAN
<cmp-field-mapping name="phone_number" persistence-name="PHONE_NU
<cmp-field-mapping name="occupation" persistence-name="OCCUPATI
<cmp-field-mapping name="income" persistence-name="INCOME" persistence-type="VARCHAR2
<cmp-field-mapping name="inactive" persistence-name="INACTIVE
<cmp-field-mapping name="address_detail_id" persistence-name="ADDRESS_
<cmp-field-mapping name="last_updated" persistence-name="LAST_UPD
<cmp-field-mapping name="updated_by" persistence-name="UPDATED_
<cmp-field-mapping name="active_flag" persistence-name="ACTIVE_F
<cmp-field-mapping name="age_year" persistence-name="AGE_YEAR
<cmp-field-mapping name="age_months" persistence-name="AGE_MONT
<cmp-field-mapping name="age_days" persistence-name="AGE_DAYS
<cmp-field-mapping name="emailid" persistence-name="EMAILID"
<cmp-field-mapping name="patient_category" persistence-name="PATIENT_
<cmp-field-mapping name="pt_Address">
<collection-mapping table="PATIENT_ADDRESS">
<primkey-mapping>
<cmp-field-mapping>
<entity-ref home="Patient">
<cmp-field-mapping persistence-name="PATIENT_
</entity-ref>
</cmp-field-mapping>
</primkey-mapping>
<value-mapping type="com.vilabs.ipd.ejb.e
<cmp-field-mapping>
<entity-ref home="Patient_address">
<cmp-field-mapping persistence-name="ADDRESS_
</entity-ref>
</cmp-field-mapping>
</value-mapping>
</collection-mapping>
</cmp-field-mapping>
</entity-deployment>
<entity-deployment name="Patient_address" data-source="jdbc/oracleDS
<primkey-mapping>
<cmp-field-mapping name="address_id" persistence-name="ADDRESS_
</primkey-mapping>
<cmp-field-mapping name="address_id" persistence-name="ADDRESS_
<cmp-field-mapping name="address" persistence-name="ADDRESS"
<cmp-field-mapping name="address2" persistence-name="ADDRESS2
<cmp-field-mapping name="city" persistence-name="CITY" persistence-type="VARCHAR2
<cmp-field-mapping name="state" persistence-name="STATE" persistence-type="VARCHAR2
<cmp-field-mapping name="country" persistence-name="COUNTRY"
<cmp-field-mapping name="pin" persistence-name="PIN" persistence-type="VARCHAR2
<cmp-field-mapping name="last_updated" persistence-name="LAST_UPD
<cmp-field-mapping name="updated_by" persistence-name="UPDATED_
<cmp-field-mapping name="active_flag" persistence-name="ACTIVE_F
<cmp-field-mapping name="patient_id" persistence-name="PATIENT_
<cmp-field-mapping name="patient">
<entity-ref home="Patient">
<cmp-field-mapping persistence-name="PATIENT_
</entity-ref>
</cmp-field-mapping>
</entity-deployment>
This code is similar for another entity bean Emeregency_contect_address
But I don't want that JDeveloper should create auto table, for that I have configure that in application.xml autocreatetable attribute false. but its not working.
ASKER
Please give if any solution as soon as possible. For this problem I have made shot length name of table and primary key but I don't think this is right solution.
Does the table already exist in the database?
ASKER
Ya table is already exist . Rrelationship table is created by JDeveloper at the deployment time of deployment descriptor file.
But if the table exists, and JDev tries to create it, it will just print a not-too-important error on the screen.
Is this the behavior you recieve?
Is this the behavior you recieve?
ASKER
This behavior didn't receive . When it create table , it gives identifire is too long. That why bean not successfully deployed.
One more question can u give orion-ejb-jar.xml mapping code for one to one and many to many ralationship between two entities.
One more question can u give orion-ejb-jar.xml mapping code for one to one and many to many ralationship between two entities.
ASKER
Hi,
I am tring to implement 1:1 relationship between two entities Patient and Patient_Address, for that I have written mapping code inside orion-ejb-jar.xml file such that
in patient side
<cmp-field-mapping name="pt_Emer_Address">
<entity-ref home="Pt_emer_addr">
<cmp-field-mapping persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
</entity-ref>
</cmp-field-mapping>
whare pt_Emer_Address is cmr field
and in Patient_Address side
<cmp-field-mapping name="patient">
<entity-ref home="Patient">
<cmp-field-mapping persistence-name="PATIENT_ ID" persistence-type="NUMBER(2 0)"/>
</entity-ref>
</cmp-field-mapping>
where patient is cmr field.
I call create method of Patient_AddressLocalHome. And inside ejbPostCreate method, first find out patient, then I call setPt_Emer_Address(ptLocal ). But it gives NoSuchObjectException.
The post create code is
public void ejbPostCreate(Long address_id, Date last_updated, Long updated_by, String active_flag, Long patient_id)
{
System.out.println(" ejbPostCreate ");
postCreate(patient_id);
}
public void postCreate(Long patient_id)
{
try{
PatientLocalHome ptLocalHome= getPatientLocalHome();
PatientLocal ptLocal = ptLocalHome.findByPrimaryK ey(patient _id);
System.out.println(" pt local "+ptLocal);
System.out.println(" Name "+ptLocal.getFirst_name()) ;
System.out.println("Contex t Object " + context.getEJBLocalObject( ));
ptLocal.setPt_Emer_Address ((Pt_emer_ addrLocal) context.ge tEJBLocalO bject());
} catch (Exception ex) {
context.setRollbackOnly();
ex.printStackTrace();
}
}
so please tell me this is orion-ejb-jar.xml mapping code problem or other problem.If orion-ejb-jar.xml problem than tell me exact mapping coding.
I am confused that it is necessary to write explicit mapping code for 1:1 ,1:M, M:M relationship in orion-ejb-jar.xml file, I am using JDev.
I am tring to implement 1:1 relationship between two entities Patient and Patient_Address, for that I have written mapping code inside orion-ejb-jar.xml file such that
in patient side
<cmp-field-mapping name="pt_Emer_Address">
<entity-ref home="Pt_emer_addr">
<cmp-field-mapping persistence-name="PATIENT_
</entity-ref>
</cmp-field-mapping>
whare pt_Emer_Address is cmr field
and in Patient_Address side
<cmp-field-mapping name="patient">
<entity-ref home="Patient">
<cmp-field-mapping persistence-name="PATIENT_
</entity-ref>
</cmp-field-mapping>
where patient is cmr field.
I call create method of Patient_AddressLocalHome. And inside ejbPostCreate method, first find out patient, then I call setPt_Emer_Address(ptLocal
The post create code is
public void ejbPostCreate(Long address_id, Date last_updated, Long updated_by, String active_flag, Long patient_id)
{
System.out.println(" ejbPostCreate ");
postCreate(patient_id);
}
public void postCreate(Long patient_id)
{
try{
PatientLocalHome ptLocalHome= getPatientLocalHome();
PatientLocal ptLocal = ptLocalHome.findByPrimaryK
System.out.println(" pt local "+ptLocal);
System.out.println(" Name "+ptLocal.getFirst_name())
System.out.println("Contex
ptLocal.setPt_Emer_Address
} catch (Exception ex) {
context.setRollbackOnly();
ex.printStackTrace();
}
}
so please tell me this is orion-ejb-jar.xml mapping code problem or other problem.If orion-ejb-jar.xml problem than tell me exact mapping coding.
I am confused that it is necessary to write explicit mapping code for 1:1 ,1:M, M:M relationship in orion-ejb-jar.xml file, I am using JDev.
Regarding the first question (let's solve this one first), which identifier is too long? Can you give an exception stack trace?
Regarding the orion-ejb-jar.xml question, which JDev version are you using?
Regarding the orion-ejb-jar.xml question, which JDev version are you using?
ASKER
Regarding first question
When I run MyEjbSessionBean.java then it gives given below such error.
Auto-deploying file:/D:/Workspace4/Projec t1/classes / (No previous deployment found)...
Auto-creating table: create table Mrd_emergency_contact_a_aq v61w (Mrd_emergency_contact_add ress_ADDRE SS_ID NUMBER not null)
done.
Oracle9iAS (9.0.3.0.0) Containers for J2EE initialized
Error creating table: ORA-00972: identifier is too long
I am using Jdev903 version.
When I run MyEjbSessionBean.java then it gives given below such error.
Auto-deploying file:/D:/Workspace4/Projec
Auto-creating table: create table Mrd_emergency_contact_a_aq
done.
Oracle9iAS (9.0.3.0.0) Containers for J2EE initialized
Error creating table: ORA-00972: identifier is too long
I am using Jdev903 version.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
The maximum length of a table name in oracle is 30 characters. The table name is 30 characters however the column name exceeds this so I suspect this is the problem.
An example of the orion-ejb.jar follows:
<orion-ejb-jar>
<enterprise-beans>
<entity-deployment name="Test" data-source="jdbc/MyDS" table="TEST">
<primkey-mapping>
<cmp-field-mapping name="id" persistence-name="ID" persistence-type="NUMBER(1 0)"/>
</primkey-mapping>
<cmp-field-mapping name="id" persistence-name="ID" persistence-type="NUMBER(1 0)"/>
<cmp-field-mapping name="data" persistence-name="DATA" persistence-type="VARCHAR2 (80)"/>
</entity-deployment>
</enterprise-beans>
<assembly-descriptor>
<default-method-access>
<security-role-mapping impliesAll="true" name="<default-ejb-call er-role>"/ >
</default-method-access>
</assembly-descriptor>
</orion-ejb-jar>
An example of the orion-ejb.jar follows:
<orion-ejb-jar>
<enterprise-beans>
<entity-deployment name="Test" data-source="jdbc/MyDS" table="TEST">
<primkey-mapping>
<cmp-field-mapping name="id" persistence-name="ID" persistence-type="NUMBER(1
</primkey-mapping>
<cmp-field-mapping name="id" persistence-name="ID" persistence-type="NUMBER(1
<cmp-field-mapping name="data" persistence-name="DATA" persistence-type="VARCHAR2
</entity-deployment>
</enterprise-beans>
<assembly-descriptor>
<default-method-access>
<security-role-mapping impliesAll="true" name="<default-ejb-call
</default-method-access>
</assembly-descriptor>
</orion-ejb-jar>
I still think the problem was that the column name was too long not the table name. The table name is 30 characters which is allowable. The column name exceeds this same max value.
Can you post ejb-jar.xml and orion-ejb-jar.xml in here?