Description
This issue was reported by Jim Weaver via a nabble user forum post[1]. The JPA specification clearly states that queries upon a mapped superclass are not permitted, but the OpenJPA documentation has a note saying that they are supported[2].
Given:
@MappedSuperclass class A { }
@Entity class B extends A { }
@Entity class C extends A { }
I found that:
a) The em.find(A.class, id) operation does indeed allow the use of mapped superclass. OpenJPA issues a select upon tables B and C looking for a matching ID.
b) A JPQL query does not: SELECT a FROM A a fails with exception: (as reported by Jim)
I receive error message "An error occurred while parsing the query filter
"SELECT a FROM A a". Error message: The name "A" is not a recognized
entity or identifier. Perhaps you meant B, which is a close match. Known
entity names: [B, C]"
I attempted the same test with the OpenJPA base 1.0 provider and it failed with the same error so it doesn't look like this was ever supported via. JPQL.
If the decision is made not to provide this support in the near future, the documentation should be updated to qualify that mapped superclass is only allow on a find.
[1] http://n2.nabble.com/Can%27t-query-against-a-MappedSuperclass-tp2665700p2665700.html
[2] http://openjpa.apache.org/builds/latest/docs/manual/manual.html#jpa_overview_meta_embeddablesuper
Attachments
Attachments
Issue Links
- is duplicated by
-
OPENJPA-1049 Query against a MappedSuperclass is not supported
- Closed
OpenJPA testcase where I can query against mappedsuperclass.