Sorry to be keep asking similar questions all the time but I am trying to get JBoss 
working after moving from another less useful bean server (openejb) and am trying to 
get the Container to manage the relationships and CMP using Foreign Keys, I have 
started with the simplest beans to allow me to understand and get the technique for 
how it works and have scoured the internet for help and advice and it all seems to 
come up wanting, I have had several errors from "You can have only 1 PK" to Cannot 
find cmpfield id in bean transtype. 
I was under the impression that if I use a Foreign key I can pass the object in and it 
will save the reference automatically in the database (and vice versa when requesting 
the Bean - it will return the sub Bean as well. 

Here are the DB tables I am trying to get JBoss to create. 

transtype
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
tt_desc VARCHAR(30),
PRIMARY KEY ( `id` )

transaction 
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT
tr_date DATETIME,
tr_state INTEGER,
tr_summary TINYINT,
tr_non_refundable TINYINT,
tr_type BIGINT UNSIGNED NOT NULL <--- This is the Foreign Key
PRIMARY KEY ( `id` )


In the Beans i am using different names in the bean (but this should also work if 
configured correctly) - DATETIME maps to a Date() Object, and other fields map to 
objects (we are not using int long etc....) 

the TransTypeBean works fine for Create using the Autonumber key
and the TransTypeBean findByPrimaryKey works as well. 

Now we are having problems getting the TransactionBean to create a new entry in the 
DB, 

The Create is declared as follows
public Object ejbCreate( Date tr_date, Integer tr_state, Boolean tr_summary, Boolean 
tr_non_refundable, TransType tr_type)

how do we get the tr_type to save just the id field in the db - is it as simple as 
setTr_type(tr_type.getId());

also when doing a findByPrimaryKey() on the Transaction entity will it return 
automatically the TransType Object or will I have to do some other stuff to get it 
out? 

my ejb-jar has the following entries
   <entity>
  |       <ejb-name>TransTypeBean</ejb-name>
  |       <home>com.ingotz.entity.TransTypeHome</home>
  |       <remote>com.ingotz.entity.TransType</remote>
  |       <local-home>com.ingotz.entity.TransTypeLocalHome</local-home>
  |       <local>com.ingotz.entity.TransTypeLocal</local>
  |       <ejb-class>com.ingotz.entity.TransTypeBean</ejb-class>
  |       <persistence-type>Container</persistence-type>
  |       <!--<prim-key-class>java.lang.Object</prim-key-class>-->
  |       <prim-key-class>java.lang.Long</prim-key-class>
  |       <reentrant>False</reentrant>
  |       <cmp-field>
  |             <field-name>Id</field-name>
  |       </cmp-field>
  |        <cmp-field>
  |             <field-name>Description</field-name>
  |        </cmp-field>
  |        <primkey-field>Id</primkey-field>
  |       <cmp-version>2.x</cmp-version> 
  |       <abstract-schema-name>TransTypeBeanAPS</abstract-schema-name>
  |     
  |       <resource-ref>
  |         <res-ref-name>jdbc/mysql</res-ref-name>
  |         <res-type>javax.sql.DataSource</res-type>
  |         <res-auth>Container</res-auth>
  |       </resource-ref>
  |     </entity>
  | 
  |     <entity>
  |       <ejb-name>TransactionBean</ejb-name>
  |       <home>com.ingotz.entity.TransactionHome</home>
  |       <remote>com.ingotz.entity.Transaction</remote>
  |       <local-home>com.ingotz.entity.TransactionLocalHome</local-home>
  |       <local>com.ingotz.entity.TransactionLocal</local>
  |       <ejb-class>com.ingotz.entity.TransactionBean</ejb-class>
  |       <persistence-type>Container</persistence-type>
  |       <!--<prim-key-class>java.lang.Object</prim-key-class>-->
  |       <prim-key-class>java.lang.Long</prim-key-class>
  |       <reentrant>False</reentrant>
  |       <cmp-field><field-name>id</field-name></cmp-field>
  |       <cmp-field><field-name>tr_date</field-name></cmp-field>
  |       <cmp-field><field-name>tr_state</field-name></cmp-field>
  |       <cmp-field><field-name>tr_summary</field-name></cmp-field>
  |       <cmp-field><field-name>tr_non_refundable</field-name></cmp-field>
  |       <cmp-field><field-name>tr_type</field-name></cmp-field> 
  |       <primkey-field>id</primkey-field>
  |       <cmp-version>2.x</cmp-version> 
  |       <abstract-schema-name>TransactionBeanAPS</abstract-schema-name>
  |     
  |       <resource-ref>
  |         <res-ref-name>jdbc/mysql</res-ref-name>
  |         <res-type>javax.sql.DataSource</res-type>
  |         <res-auth>Container</res-auth>
  |       </resource-ref>
  |     </entity>
  | 
  | 
  |   </enterprise-beans>
  |   
  |   <relationships>
  |        <ejb-relation>
  |     <ejb-relation-name>Type-Transaction</ejb-relation-name>
  |     <ejb-relationship-role>
  |     <ejb-relationship-role-name>TransTypeBeanEnd</ejb-relationship-role-name>      
                         
  |                             <multiplicity>One</multiplicity>
  |     <relationship-role-source>
  |     <ejb-name>TransTypeBean</ejb-name>
  |     </relationship-role-source>
  |     </ejb-relationship-role>
  |     <ejb-relationship-role>
  |     <ejb-relationship-role-name>TransactionBeanEnd</ejb-relationship-role-name>
  |                             <multiplicity>Many</multiplicity>
  |     <relationship-role-source>
  |     <ejb-name>TransactionBean</ejb-name>
  |     </relationship-role-source>
  |     <cmr-field>
  |     <cmr-field-name>Tr_type</cmr-field-name>
  |     </cmr-field>
  |     </ejb-relationship-role>
  |     </ejb-relation>
  | </relationships>
  | 

My jbosscmp-jdbc.xml file has the following relationship entries

  | <relationships>
  | <ejb-relation>
  | <ejb-relation-name>Type-Transaction</ejb-relation-name>
  | <foreign-key-mapping />
  | <ejb-relationship-role>
  | <ejb-relationship-role-name>TransTypeBeanEnd</ejb-relationship-role-name>
  | <key-fields>
  | <key-field>
  | <field-name>Id</field-name>        <!-- Property this end -->
  | <column-name>tr_type</column-name> <!-- Foreign key at other end -->
  | </key-field>
  | </key-fields>
  | </ejb-relationship-role>
  | <ejb-relationship-role>
  | <ejb-relationship-role-name>TransactionBeanEnd</ejb-relationship-role-name>
  | <key-fields/>
  | </ejb-relationship-role>
  | </ejb-relation>
  | </relationships>
  | 

I do hope someone can help me understand what I am missing. 


Mike.

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3829981#3829981

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3829981


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to