Hi All,
Could somebody tell me what the following error means:
[java] Exception in thread "main" <1.0.0-SNAPSHOT-SNAPSHOT fatal user
error> kodo.jdo.FatalUserException: Cannot join across
"test.kodo.abstractInstance.C.c1". The related type has unjoined subclasses.
[java] at
org.apache.openjpa.jdbc.meta.strats.RelationStrategies.unjoinable(RelationStrategies.java:53)
[java] at
org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.joinRelation(RelationFieldStrategy.java:702)
[java] at
org.apache.openjpa.jdbc.meta.FieldMapping.joinRelation(FieldMapping.java:835)
[java] at
org.apache.openjpa.jdbc.kernel.exps.PCPath.joinRelation(PCPath.java:527)
[java] at
org.apache.openjpa.jdbc.kernel.exps.PCPath.traverseField(PCPath.java:506)
[java] at
org.apache.openjpa.jdbc.kernel.exps.PCPath.initialize(PCPath.java:386)
[java] at
org.apache.openjpa.jdbc.kernel.exps.CompareEqualExpression.initialize(CompareEqualExpression.java:78)
[java] at
org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.initialize(SelectConstructor.java:178)
[java] at
org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.newSelect(SelectConstructor.java:119)
[java] at
org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.evaluate(SelectConstructor.java:73)
[java] at
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.createWhereSelects(JDBCStoreQuery.java:329)
[java] at
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeQuery(JDBCStoreQuery.java:169)
[java] at
org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeQuery(ExpressionStoreQuery.java:677)
[java] at
org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:985) [java]
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:796) [java]
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:766)
My application is as follows:
- Abstract base class A having attribute a1 and concrete subclasses B1 and B2
- Mapping strategy for A is subclass table
- Class C having attribute c1 of type A (so a direct relationship with abstract
class A)
- The above query is as this:
newQuery("C", "c1.a1 == 'something'");
I am using the BEA Kodo implementation.
I would appreciate if you CC me on your response as I am not permanently
subscribed on this list.
Thanks & Best regards,
Jean
_________________________________________________________________
Explore the seven wonders of the world
http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE