We're using OpenJPA 2.1.0. I've got a case where I'm building a query like this:
TypedQuery<SomeInterface> q = em.createNamedQuery("someQuery", SomeInterface.class); Now, SomeInterface is not the actual entity class--that would be SomeInterfaceEntity (not mentioned above, as you'll note). But it is an interface that the results of the query all implement. EclipseLink and Hibernate both accept this declaration just fine and run the associated query just fine. At runtime, this version of OpenJPA seems to be trying to treat SomeInterface.class as though it denoted an entity: <openjpa-2.0.0-beta3-r422266:926797 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Result type "interface com.foobar.SomeInterface" does not have any public fields or setter methods for the projection or aggregate result element "SomeInterfaceEntity", nor does it have a generic put(Object,Object) method that can be used, nor does it have a public constructor that takes the types null. at org.apache.openjpa.kernel.ResultPacker.<init>(ResultPacker.java:158) at org.apache.openjpa.kernel.ResultPacker.<init>(ResultPacker.java:103) at org.apache.openjpa.kernel.QueryImpl.getResultPacker(QueryImpl.java:1289) at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1228) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1005) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:861) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:792) at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542) at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:288) at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302) Truth be told, I have no idea what OpenJPA is trying to tell me here. JPA's Javadoc places no restrictions on the class passed in as the second argument to EntityManager#createNamedQuery(String, Class)<http://download.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#createNamedQuery%28java.lang.String,%20java.lang.Class%29>. The JPA specification doesn't do so either, at least in the sections I read concerning queries. I am also using (I know, I know) subclass-based enhancement. What...are my options here? Best, Laird -- http://about.me/lairdnelson