- 
        1. Re: JBoss3.2:same name for CMR & CMP fieldstommyg Apr 23, 2003 8:00 AM (in response to san121)I was able to get this to work. 
- 
        2. Re: JBoss3.2:same name for CMR & CMP fieldssan121 Apr 23, 2003 8:25 AM (in response to san121)Dear tommyg, 
 Its so very nice 2 hear that u solved it! Cud u please post details of your solution.
 Thanks
- 
        3. Re: JBoss3.2:same name for CMR & CMP fieldstommyg Apr 23, 2003 10:10 AM (in response to san121)The solution is to describe the setter and getter for the field that holds the foreign key value, and also in your ejb-jar.xml file describe the relationship and how that field is used in the relationship. Basically set up the relationship as you normally would in both the bean and the ejb-jar file AND in your CMP bean write the setter and getter fields. 
 If you need information on setting the relationship I would recommend using Xdoclet and try the example.
- 
        4. Re: JBoss3.2:same name for CMR & CMP fieldssan121 Apr 23, 2003 1:07 PM (in response to san121)Thanks for the comments. 
 I am already having setter/getter methods for the field that holds the foreign key value, which is anyway needed because this field should also act as a CMP field. So what am i missing?
 I assume that i am defining the relations correctly, bcoz i am able to get the bean work if the CMP field and CMR field are having different names (and hence two different sets of settter/getter methods)
 I am getting into problem only when
 ( A) I make the name of CMP and CMR fields SAME
 AND
 (B) when i Perform an INSERT operation (Kindly note that other finder methods will not make problem here. only ejbCreate() will cause problem)
- 
        5. Re: JBoss3.2:same name for CMR & CMP fieldstommyg Apr 23, 2003 6:49 PM (in response to san121)
 I'm using Xdoclet and JBoss 3.2 RC4. I'll just describe the relevant parts of my files.
 The 'one' class is called PersonIdentification and it has a relationship with a 'many' class called PersonSubject.
 Both the one class and the many class have a column called PERSON_ID. PERSON_ID is the primary key in the 'one' table and the foreign key in the 'many' table. Both beans have a get and set for personId.
 Parts of 4 files are described below: 1) part of the 'one' class 2) part of the many class 3) part of the session bean 4) part of the ejb-jar file.
 Hope this helps.
 1.
 This is part of the 'one' class and describes the many relationship
 /**
 * @param personSubject for this person
 *
 * @ejb:interface-method
 */
 public abstract void setPersonSubject(java.util.Collection personSubject);
 /**
 * @return all subjects for this person
 *
 * @ejb:interface-method view-type="local"
 * @ejb:relation
 * name="person-personSubject"
 * role-name="one-person-has-many-subjects"
 * target-role-name="many-subjects-belong-to-one-person"
 * target-ejb="PersonSubject"
 * target-multiple="no"
 * target-cascade-delete="yes"
 *
 * @jboss:target-relation related-pk-field="personId"
 * fk-column="PERSON_ID"
 */
 public abstract java.util.Collection getPersonSubject();
 2.
 The following shows the ejbCreate method for the 'many' object. Notice I set the foreign key value.
 /**
 * Create a person subject.
 * @ejb:create-method
 */
 public PersonSubjectPK ejbCreate( PersonSubjectData psd )
 throws CreateException {
 setSubjectId( psd.getSubjectId() );
 setPersonId( psd.getPersonId() );
 return null;
 }
 3.
 In my session bean I call the create method for PersonSubject.
 PersonSubjectLocal p = home.create(psd);
 4. this is the part of the ejb-jar file that describes the relationship.
 <!-- Relationships -->
 <ejb-relation >
 <ejb-relation-name>person-personSubject</ejb-relation-name>
 <ejb-relationship-role >
 <ejb-relationship-role-name>one-person-has-many-subjects</ejb-relationship-role-name>
 One
 <relationship-role-source >
 <ejb-name>PersonIdentification</ejb-name>
 </relationship-role-source>
 <cmr-field >
 <cmr-field-name>personSubject</cmr-field-name>
 <cmr-field-type>java.util.Collection</cmr-field-type>
 </cmr-field>
 </ejb-relationship-role>
 <ejb-relationship-role >
 <ejb-relationship-role-name>many-subjects-belong-to-one-person</ejb-relationship-role-name>
 Many
 <cascade-delete/>
 <relationship-role-source >
 <ejb-name>PersonSubject</ejb-name>
 </relationship-role-source>
 </ejb-relationship-role>
 </ejb-relation>
 
    