You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Adam Hardy (JIRA)" <ji...@apache.org> on 2009/01/27 14:26:59 UTC

[jira] Resolved: (OPENJPA-496) columns fill wrong entity fields when names same in joined tables

     [ https://issues.apache.org/jira/browse/OPENJPA-496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Hardy resolved OPENJPA-496.
--------------------------------

    Resolution: Invalid

After investigation I discovered that it is in fact the JDBC SQL logging package P6Spy that causes the problem. 

While reading the metadata and the resultsets to get the info to log, it probably re-orders the columns. 

Obviously, as soon as I reduced my project to the bare minimum, including removing P6Spy, the test worked. I put P6Spy back in, it stopped working. 

Visions of Schrodinger's cat come to mind.

Apologies that it took so long for me to follow up. 

> columns fill wrong entity fields when names same in joined tables
> -----------------------------------------------------------------
>
>                 Key: OPENJPA-496
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-496
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.1.0
>         Environment: Linux 2.6, JDK 1.5.0_12, MySQL 4 or H2
>            Reporter: Adam Hardy
>            Priority: Blocker
>         Attachments: bug.zip, issue496.jar
>
>
> OpenJPA is mixing up the mapping of columns from joined tables, where the two
> tables have fields with the same name used on their respective entities. I've
> got some basic unit tests aimed at verifying the problem. Is there something
> wrong with my mappings or is this a bug? I can upload the unit test project.
> Here's the info. The TITLE fields get mixed up. I have this query:
> select species from Species species
> I have this output:
> SELECT t0.ID, t1.ID, t1.OWNER_ID, t1.TITLE, t0.IUCN_STATUS_ID, t0.OWNER_ID,
> t0.TITLE FROM PUBLIC.SPECIES t0 LEFT OUTER JOIN PUBLIC.GENUS t1 ON t0.GENUS_ID =
> t1.ID
> These are the mappings:
>    <entity class="org.permacode.atomictest.domain.Genus">
>      <table name="GENUS" />
>      <attributes>
>        <id name="id">
>           <column name="ID" />
>           <generated-value strategy="TABLE" generator="genusKeySequence" />
>         </id>
>         <basic name="title">
>           <column name="TITLE" />
>         </basic>
>         <basic name="ownerId">
>           <column name="OWNER_ID" />
>         </basic>
>         <one-to-many name="species" mapped-by="genus">
>           <cascade>
>             <cascade-persist />
>             <cascade-merge />
>             <cascade-refresh />
>           </cascade>
>         </one-to-many>
>       </attributes>
>     </entity>
>     <entity class="org.permacode.atomictest.domain.Species">
>       <table name="SPECIES" />
>       <attributes>
>         <id name="id">
>           <column name="ID" />
>           <generated-value strategy="TABLE" generator="speciesKeySequence" />
>         </id>
>         <basic name="title">
>           <column name="TITLE" />
>         </basic>
>         <basic name="iucnStatus">
>           <column name="IUCN_STATUS_ID" />
>           <enumerated>ORDINAL</enumerated>
>         </basic>
>         <basic name="ownerId">
>           <column name="OWNER_ID" />
>         </basic>
>         <many-to-one name="genus">
>           <join-column name="GENUS_ID" />
>         </many-to-one>
>       </attributes>
>     </entity>

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