openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter (JIRA)" <>
Subject [jira] Commented: (OPENJPA-1166) Query targetting a common attribute defined in a Table-Per-Class entity heirarchy referenced through a relationship fails
Date Wed, 08 Jul 2009 22:47:14 GMT


Kevin Sutter commented on OPENJPA-1166:

This JIRA was created based on the following posts...

What is the problem being reported by this JIRA?  From the posting, it sounds like the problem
is resolved by using the @Type annotation.  But, the poster was asking how this @Type solution
could be applied across more than a single subtype.

So, is this JIRA meant to address the original problem and not require an explicit @Type annotation?
 Or, is this JIRA meant to address the new requirement to allow for more than a single subtype?
 These are two separate requests and I'm trying to figure out which one is being pursued.


> Query targetting a common attribute defined in a Table-Per-Class entity heirarchy referenced
through a relationship fails
> -------------------------------------------------------------------------------------------------------------------------
>                 Key: OPENJPA-1166
>                 URL:
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.2.0, 1.2.1
>            Reporter: Jody Grassel
> Queries that try to reference a common persistable attribute that is defined by a Table-Per-Class
entity hierarchy through a relationship does not seem to work.  The following query: "SELECT
e FROM PartnerEntity e  WHERE e.rootEntity.rootEntityIntData = ?1" will throw the following
> <openjpa-1.2.2-SNAPSHOT-r422266:789525M fatal user error> org.apache.openjpa.persistence.ArgumentException:
Cannot join across "org.apache.openjpa.persistence.inheritance.entities.mscid.concrete.PIDPartnerEntity.rootEntity".
 The related type has unjoined subclasses.
>         at org.apache.openjpa.jdbc.meta.strats.RelationStrategies.unjoinable(
>         at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.joinRelation(
>         at org.apache.openjpa.jdbc.meta.FieldMapping.joinRelation(
>         at org.apache.openjpa.jdbc.kernel.exps.PCPath.joinRelation(
>         at org.apache.openjpa.jdbc.kernel.exps.PCPath.traverseField(
>         at org.apache.openjpa.jdbc.kernel.exps.PCPath.initialize(
>         at org.apache.openjpa.jdbc.kernel.exps.CompareEqualExpression.initialize(
>         at org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.initialize(
>         at org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.newSelect(
>         at org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.evaluate(
>         at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.createWhereSelects(
>         at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeQuery(
>         at org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeQuery(
>         at org.apache.openjpa.kernel.QueryImpl.execute(
>         at org.apache.openjpa.kernel.QueryImpl.execute(
>         at org.apache.openjpa.kernel.QueryImpl.execute(
>         at org.apache.openjpa.kernel.DelegatingQuery.execute(
>         at org.apache.openjpa.persistence.QueryImpl.execute(
>         at org.apache.openjpa.persistence.QueryImpl.getResultList(
> Where the following entities are defined:
> @Entity
> public class PartnerEntity  {
>    @Id private int id;
>    @OneToOne  private RootEntity rootEntity;
>    ...
> }
> @Entity
> @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
> public class RootEntity {
>    @Id private int id;
>    private int rootEntityIntData;
> ...
> }
> [there exist a number of entities which inherit from RootEntity, the example above targets
the persistable attribute "rootEntityIntData" which is inherited by every entity extending

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message