Composite PK/FK and the alphabetical order of class names
---------------------------------------------------------
Key: ANN-676
URL:
http://opensource.atlassian.com/projects/hibernate/browse/ANN-676
Project: Hibernate Annotations
Issue Type: Bug
Components: binder
Affects Versions: 3.3.0.ga
Environment: Hibernate Core 3.2.5.GA , Hibernate Annotations 3.3.0.GA, Sybase ASE
15
Reporter: Immo Heikkinen
Priority: Blocker
Attachments: TestCaseFailure.zip, TestCaseOK.zip
Original discussion on the user forum:
http://forum.hibernate.org/viewtopic.php?t=980623
I am having trouble with composite primary/foreign keys and sequence of classes with
bidirectional one-to-many relationship between them. I am getting strange annotation
exception with annotations that seem to be perfectly ok.
My conclusion is that the name of classes need to be in alphabetical order, otherwise
misleading exception about the number of columns is thrown.
Attachment TestCaseOK.zip contains sequence of three entity classes A, B and C, with
bi-directional one-to-many association between them. This mapping works fine.
Attachment TestCaseFailure.zip contains the same classes, but B and C has been changed
with each other (B has been renamed to C, and C has been renamed to B.) This mapping
causes the following AnnotationException:
Caused by: org.hibernate.AnnotationException: A Foreign key refering C from B has the
wrong number of column. should be 1
The reason for this seems to be the alphabetical order of the class names! Sequence A
--> B --> C is fine but A --> C --> B is not.
If you use @Table to define the database table names, it is the table names that need to
be in alphabetical order.
The same error can be also produced with @SecondaryTable in class/table that has composite
PK. This case is more difficult since you cannot get rid of the exception, no matter how
you name your classes or tables. I believe this is the same bug that appears in the
comments of ANN-509 .
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira