This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

one-to-one relationship

 
Jolie Lee
Ranch Hand
Posts: 87
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I want to create a one-to-one relationship for this two table,

Items
- ItemId (auto increment)
- SoftwareId
- PackageId

Software
- SoftwareId
- SoftwareName

this is my relationship in jbosscmp-jdbc.xml

<ejb-relation>
<ejb-relation-name>PackageItems-Software</ejb-relation-name>
<foreign-key-mapping/>

<ejb-relationship-role>
<ejb-relationship-role-name>packageitems-has-software</ejb-relationship-role-name>
<key-fields>
<key-field>
<field-name>softwareId</field-name>
<column-name>SOFTWAREID</column-name>
</key-field>
</key-fields>
</ejb-relationship-role>

<ejb-relationship-role>
<ejb-relationship-role-name>software-belongs-to-packageitems</ejb-relationship-role-name>
<key-fields/>
</ejb-relationship-role>
</ejb-relation>


I keep getting error "org.jboss.deployment.DeploymentException: Role 'packageitems-has-software' on Entity Bean 'SoftwarePackageItemsEJB' : CMP field for key not found: field name='softwareId'"

Is it true that only can define primary keys in <key-field>? if yes, then how should i join this two table?

pls advise.Thanks.
 
norman richards
Author
Ranch Hand
Posts: 367
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Try putting the key-field on the software-belongs-to-packageitems side since the id belongs to that side of the relationship.

You should definitely check out chapter 7 of the book to learn how to configure persistence. We have a very similar example and offer this as simple explanation:

[code]
In JBoss, key fields for relationships are always defined on the
source side of the relationship, regardless of whether they are mapped as
foreign keys in another entity table or in a middle table. Although it may
seem slightly odd in this particular case, JBoss is very consistent.


It's slightly out of context, but I think it should make sense.
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic