-
1. Re: Data contains multiple values, but this cmr field is sin
swankjesse Mar 11, 2003 4:40 PM (in response to jamarkha)I wrestled with this problem all day. The solution is to add target-multiple="yes" to the corresponding ejb.relation.
* @ejb.relation
* name="Message-ToUser"
* role-name="Message-has-ToUser"
* target-ejb="User"
* target-role-name="ToUser-belongs_to-Message"
* target-multiple="yes"
This causes the XDoclet-generated ejb-jar.xml to include Many in the appropriate ejb-relationship-role:
<ejb-relationship-role>
<ejb-relationship-role-name>Message-has-ToUser</ejb-relationship-role-name>
Many
<relationship-role-source >
<ejb-name>Message</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>to</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
My guess is that JBoss assumes the relationship is 1:1, so it does the search on the wrong table when trying to decide what to insert or remove. -
2. Re: Data contains multiple values, but this cmr field is sin
swankjesse Mar 11, 2003 4:59 PM (in response to jamarkha)I wrestled with this problem all day. The solution is to add the XDoclet target-multiple="yes" attribute to the ejb.relation tag of the problematic relation:
* @ejb.relation
* name="Message-ToUser"
* role-name="Message-has-ToUser"
* target-ejb="User"
* target-role-name="ToUser-belongs_to-Message"
* target-multiple="yes"
This corresponds to the following XML in ejb-jar.xml:
<ejb-relationship-role >
<ejb-relationship-role-name>Message-has-ToUser</ejb-relationship-role-name>
Many
<relationship-role-source >
<ejb-name>Message</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>to</cmr-field-name>
</cmr-field>
</ejb-relationship-role>