Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to map ManyToOne relationship with Composite key?

 
Ricardo Preston
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all. I'm having great difficulty trying to map a ManyToOne relationship between 2 classes, when one class has a composite primary key. I'm running JBoss 5.0 and Seam.

I have a Form class that has many Rules. If at first I ignore the composite key and just use 1 field as the key, all is fine (though of course I get multiple matches instead of one). The code looks something like this:



Now if I uncomment the 2nd @JoinColumn annotation, I get the error:

org.hibernate.AnnotationException: A Foreign key refering xxx.yyy.Form from xxx.yyy.Rule has the wrong number of column. should be 1


If I create a PK class FormKey.java to hold the form name & version, I then don't know how to construct the annotations in Rule, since I'm no longer joining columns directly, but mapping to a class Form.key instead.

Any ideas? Thanks.
 
Mark Spritzler
ranger
Sheriff
Posts: 17278
6
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Don't you also have to uncomment out the IdClass annotations, etc. in the parent class?

Mark
 
Ricardo Preston
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, I do if I'm using the FormKey class, as well as uncommenting the @EmbeddedId line.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic