openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Vorburger" <mvorbur...@odyssey-group.com>
Subject NPE at RelationToManyInverseKeyFieldStrategy when using mappedBy inverse
Date Wed, 30 Apr 2008 15:07:26 GMT
Hello,
 
I'm running into an NPE in RelationToManyInverseKeyFieldStrategy
(copy/pasted below) when using an OneToMany inverse relation with
mappedBy and InheritanceType.TABLE_PER_CLASS in 1.1.0-SNAPSHOT...

Test summary: A common abstract superclass Translatable which has a
@OneToManySet<Translation>, and many subclasses of that like e.g. a
SomethingTranslatable, and many more.  The idea is that mapping should
lead to a Translation table holding the items for SomethingTranslatable
and all other superclasses.  Then SomethingTranslatable and many other
tables (no physical Translatable table).  There shouldn't be a join
table for each SomethingTranslatable, as it's a OneToManySet, it doesn't
make sense, so the owning side is a @ManyToOne in Translation back to
Translatable.  Granted a physical FK will not be possible in such a
schema - accepted, but it should still be possible to map this?  It
works until I use @Inheritance(strategy =
InheritanceType.TABLE_PER_CLASS) on Translatable, with it - boum, NPE.

I have a standalone example (test) demonstrating this that I can put
into a JIRA if anybody wants to have a look (it doesn't make it through
list, or spam filter).

Work-around may be to use a an InheritanceType.JOINED on the
Translatable, which avoids the NPE (tested); and which in this exaxmple
only leads to a basically empty physical Translatable (but allows
physical FK).  In the real-world example this is based on though, where
the Translatable has more attributes (e.g. a kind of
shortDefaultTranslation and longDefaultTranslation), and the real
SomethingTranslatable are more complex, this leads to a lot of joins
across a table hiearchy which we'd like to avoid.

Am I doing something wrong?  Not possible?  Bug?  Open a JIRA?

Thanks for any idea, hints, things to try, etc.!

_____________________________
Michael Vorburger, Odyssey Financial Technologies

___
Exception in thread "main" java.lang.NullPointerException  at
org.apache.openjpa.jdbc.meta.strats.RelationToManyInverseKeyFieldStrateg
y.map(RelationToManyInverseKeyFieldStrategy.java:136)
 at
org.apache.openjpa.jdbc.meta.strats.RelationCollectionInverseKeyFieldStr
ategy.map(RelationCollectionInverseKeyFieldStrategy.java:95)
 at
org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:
120)
 at
org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(Ru
ntimeStrategyInstaller.java:80)
 at
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.ja
va:438)
 at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:403)
 at
org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.ja
va:812)
 at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
 at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataReposit
ory.java:717)
 at
org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataReposi
tory.java:677)
 at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.ja
va:555)
 at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepositor
y.java:308)
 at
org.apache.openjpa.jdbc.meta.MappingRepository.getMapping(MappingReposit
ory.java:284)
 at
org.apache.openjpa.jdbc.meta.MappingTool.getMapping(MappingTool.java:676
)
 at
org.apache.openjpa.jdbc.meta.MappingTool.buildSchema(MappingTool.java:74
8)
 at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:646)
 at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:1072)
 at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:986)
 at atest.CreateDBTest.synchronizeDatabase(CreateDBTest.java:70)
 at atest.CreateDBTest.testCreateDerbyDB(CreateDBTest.java:31)
 at atest.CreateDBTest.main(CreateDBTest.java:35)



____________________________________________________________

 This email and any files transmitted with it are CONFIDENTIAL and intended
  solely for the use of the individual or entity to which they are addressed.
 Any unauthorized copying, disclosure, or distribution of the material within
  this email is strictly forbidden.
 Any views or opinions presented within this e-mail are solely those of the
  author and do not necessarily represent those of Odyssey Financial
Technologies SA unless otherwise specifically stated.
 An electronic message is not binding on its sender. Any message referring to
  a binding engagement must be confirmed in writing and duly signed.
 If you have received this email in error, please notify the sender immediately
  and delete the original.

Mime
View raw message