Oh, yes, Dain. Thanks for the explanation. I didn't know about <key-fields/>. As to changing the error message... Yes, I think it would be better to change it to something like "key-fields were specified incorrectly" or so. Current message sounds like a requirement, as for me.
alex > -----Original Message----- > From: Dain Sundstrom [mailto:[EMAIL PROTECTED]] > Sent: Thursday, April 25, 2002 8:23 PM > To: [EMAIL PROTECTED] > Cc: Jboss-User (E-mail) > Subject: Re: [JBoss-user] relation-table mapped relationship > > > Alex Loubyansky wrote: > > > I have to beans with many-to-many relationship. > > 1. not specifying settings relation-table-mapping works fine; > > 2. specifying only table-name in relation-table-mapping > throws an exception > > while deployment; > > 3. specifying table-name in relation-table-mapping and corresponding > > key-fields in ejb-relationship-role's works fine. > > > > In jbosscmp-jdbc_3_0.dtd I haven't found such > constraints. Is it a bug? > > > > I used JBoss-3.1.0alpha checked at 15.04, J2SDK1.4.0, Win2K. > > > > 1. for the first case (works fine): > > <ejb-relation> > > <ejb-relation-name>Category-Resource</ejb-relation-name> > > <relation-table-mapping> > > </relation-table-mapping> > > <ejb-relationship-role> > > > > > <ejb-relationship-role-name>category-has-resources</ejb-relati > onship-role-na > > me> > > <key-fields/> > > </ejb-relationship-role> > > <ejb-relationship-role> > > > > > <ejb-relationship-role-name>resource-belongs-categories</ejb-r > elationship-ro > > le-name> > > <key-fields/> > > </ejb-relationship-role> > > </ejb-relation> > > > When using relation table mapping, you must either not include the > key-fields mapping or you must supply a mapping for each key field. > > > > 2. for the second case (deployment exception): > > <ejb-relation> > > <ejb-relation-name>Category-Resource</ejb-relation-name> > > <relation-table-mapping> > > <table-name>category_resource</table-name> > > </relation-table-mapping> > > <ejb-relationship-role> > > > > > <ejb-relationship-role-name>category-has-resources</ejb-relati > onship-role-na > > me> > > <key-fields/> > > </ejb-relationship-role> > > <ejb-relationship-role> > > > > > <ejb-relationship-role-name>resource-belongs-categories</ejb-r > elationship-ro > > le-name> > > <key-fields/> > > </ejb-relationship-role> > > </ejb-relation> > > > Same as above. > > > > 2002-04-25 14:37:50,356 ERROR > [org.jboss.ejb.EntityContainer] Exception in > > service lifecyle operation: create > > org.jboss.deployment.DeploymentException: Both roles of a > relation-table > > mapped relationship must have key fields: > > ejb-relation-name=Category-Resource > > > Should I change the error message? It makes since to me, but I wrote > the code. > > > > 3. for the third case (works fine): > > <ejb-relation> > > <ejb-relation-name>Category-Resource</ejb-relation-name> > > <relation-table-mapping> > > <table-name>category_resource</table-name> > > </relation-table-mapping> > > <ejb-relationship-role> > > > > > <ejb-relationship-role-name>category-has-resources</ejb-relati > onship-role-na > > me> > > <key-fields> > > <key-field> > > <field-name>categoryId</field-name> > > <column-name>category</column-name> > > </key-field> > > </key-fields> > > </ejb-relationship-role> > > <ejb-relationship-role> > > > > > <ejb-relationship-role-name>resource-belongs-categories</ejb-r > elationship-ro > > le-name> > > <key-fields> > > <key-field> > > <field-name>resourceId</field-name> > > <column-name>resource</column-name> > > </key-field> > > </key-fields> > > </ejb-relationship-role> > > </ejb-relation> > > > > > As it should. This will also work: > > <ejb-relation> > <ejb-relation-name>Category-Resource</ejb-relation-name> > <relation-table-mapping> > <table-name>category_resource</table-name> > </relation-table-mapping> > </ejb-relation> > > -dain > > _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user