If we weren't exchanging messages over email you'd see me doing a little
victory dance right now! Which, not too surprisingly, makes me glad we're
exchanging messages over email.

I was using a version of JBoss pulled from CVS in the last day or two, but
was using examples and docs that applied to the alpha release. Right before
your email I had decided that JBoss was completely ignoring everything I had
in my jbosscmp-jdbc.xml file - which it was, because I was using the old
style where <foreign-key-mapping> and <table-mapping> wrapped the roles. 

Who would have thought to go look at the DTD? I mean, it's only the exact
description of how I should be formatting the config file. Sigh...

Thanks for kicking me in the right direction, everything works wonderfully
now.

Jason

-----Original Message-----
From: Dain Sundstrom [mailto:[EMAIL PROTECTED]]
Sent: Thursday, February 21, 2002 3:48 PM
To: Robertson, Jason
Cc: JBoss User (E-mail)
Subject: Re: [JBoss-user] CMP2.0 Foreign Key (?) Problem


This is definitely a job for the jbosscmp-jdbc.xml file.  What version 
of JBoss are you using?  The structure of this file changed between the 
alpha and the beta.  The xml for the classic Order-LineItem in JBoss 3.0 
beta follows:

<ejb-relation>
    <ejb-relation-name>Order-LineItem</ejb-relation-name>
    <foreign-key-mapping/>
    <ejb-relationship-role>
<ejb-relationship-role-name>order.getLineitems()</ejb-relationship-role-name
>
       <key-fields>
          <key-field>
             <field-name>ordernumber</field-name>
             <column-name>ORDER_NUMBER</column-name>
          </key-field>
       </key-fields>
    </ejb-relationship-role>
    <ejb-relationship-role>
<ejb-relationship-role-name>lineitem.getOrder()</ejb-relationship-role-name>
       <key-fields/>
    </ejb-relationship-role>
</ejb-relation>

As you can see the roles have been moved out of the foreign-key-mapping 
element and keys are always specified in terms of the current entity 
which is backwards from the old foreign key mapping but exactly the same 
as the table-mapping.  Read the dtd for more info.

-dain


Robertson, Jason wrote:

> I have two prebuilt tables that look like this:
> 
> mysql> select * from organizationtype;
> +-------+---------------+
> | name  | description   |
> +-------+---------------+
> | type1 | orgtype-desc1 |
> | type2 | orgtype-desc2 |
> +-------+---------------+
> 2 rows in set (0.00 sec)
> 
> mysql> select * from role;
> +-------+-------------+-------------+
> | name  | description | orgTypeName |
> +-------+-------------+-------------+
> | role1 | role-desc1  | type1       |
> | role2 | role-desc2  | type1       |
> | role3 | role-desc3  | type1       |
> | role4 | role-desc4  | type2       |
> +-------+-------------+-------------+
> 4 rows in set (0.00 sec)
> 
> Where role->orgTypeName is a foreign key to organizationtype->name.
> 
> I was an accessor RoleEntity.getOrganizationType() to return an
> OrganizationTypeEntity. When I set the relationship up in ejb-jar.xml, the
> SQL is generated with a field name of organizationType where I need it to
be
> orgTypeName. It's my understanding that this is a job for
> foreign-key-mapping in jbosscmp-jdbc.xml, but I can't get it to work. Is
> this the proper place to do this mapping? What is the correct
configuration?
> 
> Here's a template, and no matter what I stick in for the '???' areas, I
> can't seem to ever get orgTypeName into the SQL query:
> 
>   <relationships>
>     <ejb-relation>
>       <ejb-relation-name>Role-OrganizationType</ejb-relation-name>
> 
>       <foreign-key-mapping>
> 
>         <ejb-relationship-role>
>           <ejb-relationship-role-name>
>             Role-Spawns-OrgType
>           </ejb-relationship-role-name>
>           <foreign-key-fields>
>             <foreign-key-field>
>               <field-name>???</field-name>
>               <column-name>???</column-name>
>             </foreign-key-field>
>           </foreign-key-fields>
>         </ejb-relationship-role>
> 
>         <ejb-relationship-role>
>           <ejb-relationship-role-name>
>              OrgType-Fulfills-Role
>           </ejb-relationship-role-name>
>           <foreign-key-fields>
>             <foreign-key-field>
>               <field-name>???</field-name>
>               <column-name>???</column-name>
>             </foreign-key-field>
>           </foreign-key-fields>
>         </ejb-relationship-role>
> 
>       </foreign-key-mapping>
> 
>      </ejb-relation>
>    </relationships>
> 
> I've "solved" this problem by renaming my column "organizationType" in my
> database, but I'd still like to understand how to set this up for the
> example given above.
> 
> Thanks,
> Jason
> 
> 
> 
> 
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
> 



_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to