Heath Thomann created OPENJPA-2533:
--------------------------------------
Summary: Table name defined in XML mapping file is not used when
executing a named query.
Key: OPENJPA-2533
URL: https://issues.apache.org/jira/browse/OPENJPA-2533
Project: OpenJPA
Issue Type: Bug
Components: query
Affects Versions: 2.3.0, 2.2.2, 2.4.0
Reporter: Heath Thomann
Priority: Critical
Take this simple entity:
@Entity
@javax.persistence.NamedQuery(name = "TableNameInXmlEntity.findAll", query =
"SELECT t FROM TableNameInXmlEntity t")
public class TableNameInXmlEntity implements Serializable {
@Id
private int myid;
.......
Take this simple XML mapping entry:
<entity-mappings..........
<entity class="org.apache.openjpa.persistence.xml.TableNameInXmlEntity">
<table name="TableNameInXml"/>
</entity>
</entity-mappings>
With this code, take the following test to execute the named query:
Query q = em.createNamedQuery("TableNameInXmlEntity.findAll");
q.getResultList();
The following SQL will be generated:
SELECT t0.myid FROM TableNameInXmlEntity t0
Notice that 'TableNameInXmlEntity' is used, rather than 'TableNameInXml' (i.e.
the name defined in the XML mapping file).
Rather than executing a named query, if we execute a query like the following:
Query q = em.createQuery("SELECT t FROM TableNameInXmlEntity t");
q.getResultList();
The following (correct) SQL will be executed:
SELECT t0.myid FROM TableNameInXml t0
Finally, if we executed the above query, and THEN execute the named query, all
will work as expected.
I have a test I'll upload shortly which recreates the issue.
Thanks,
Heath
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)