[ 
https://issues.apache.org/jira/browse/OPENJPA-2431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13806751#comment-13806751
 ] 

axel becker commented on OPENJPA-2431:
--------------------------------------

Tested with Hibernate as JPA-Provider. 
The result with hibernate was as expected. The testcase is green. 
Please inspect the issue.

{code:title=test.hbm.xml|borderStyle=solid}
<hibernate-mapping>
        <sql-query name="TestEntityIndexReadonly.findByDueDate">
                <return alias="id" 
class="de.bundesbank.cephnabs.common.entity.test.TestEntityIndexReadonly"/>
                <return alias="cur" 
class="de.bundesbank.cephnabs.common.entity.test.TestEntityCurrencyReadonly"/>
                <return alias="tenor" 
class="de.bundesbank.cephnabs.common.entity.test.TestEntityTenorReadonly"/>     
  
    <![CDATA[SELECT {id.*}, {cur.*}, {tenor.*}
          FROM indexes id
          LEFT JOIN types cur ON cur.t_id = id.id_t_cur_id
          LEFT JOIN types tenor ON tenor.t_id = id.id_t_tenor_id
          WHERE cur.t_diskriminator = 'currencyType'
           AND tenor.t_diskriminator = 'tenorType'     
        ]]>
        </sql-query>    
</hibernate-mapping>
{code}

thanks
axel


> Native-Query with multiple joins to same table returning wrong result
> ---------------------------------------------------------------------
>
>                 Key: OPENJPA-2431
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2431
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc, jpa, kernel, sql
>    Affects Versions: 2.1.0, 2.1.1, 2.2.2
>         Environment: Websphere 8 Runtime and Websphere ApplicationServer and 
> without IBM classes (native TestNG)
> Windows XP
> J2EE 6
> Oracle 11
>            Reporter: axel becker
>            Priority: Blocker
>         Attachments: resultlist.jpeg, TestEntityCurrencyReadonly.java, 
> TestEntityImmutableIT.sql, testentityimmutable.jpa.xml, 
> TestEntityIndexReadonly.java, TestEntityTenorReadonly.java, 
> TestEntityTypeReadonly.java, TestReadonlyPrimaryKey.java
>
>
> The resultset of the following native query should has a result of an 
> objectarray with 3 different returnvalues. 
> 1) TestEntityIndexReadonly: the holder entity mapped to table indexes 
> 2) TestEntityCurrencyReadonly: currency mapped to table types 
> 3) TestEntityTenorReadonly: tenor mapped to table types too 
> But i get an Resultset with 3 Objects where the second and the third object 
> are the same (same instance). 
> 1) TestEntityIndexReadonly: 
> 2) TestEntityCurrencyReadonly: 
> 3) TestEntityCurrencyReadonly: 
> The Query:
>       <named-native-query name="TestEntityIndexReadonly.findByDueDate"
>               
> result-set-mapping="TestEntityIndexReadonly.findByDueDateResult">
>               <query>
>     <![CDATA[
>       SELECT id.*, cur.*, tenor.*
>         FROM indexes id
>         LEFT JOIN types cur ON cur.t_id = id.id_t_cur_id
>         LEFT JOIN types tenor ON tenor.t_id = id.id_t_tenor_id
>      ]]>
>     </query>
>       </named-native-query>
>       <!--  ResultSets -->
>       <sql-result-set-mapping 
> name="TestEntityIndexReadonly.findByDueDateResult">
>               <entity-result 
> entity-class="de.test.openjpa.TestEntityIndexReadonly" />
>               <entity-result 
> entity-class="de.test.openjpa.TestEntityCurrencyReadonly" />
>               <entity-result 
> entity-class="de.test.openjpa.TestEntityTenorReadonly" />
>       </sql-result-set-mapping>
> Hint: For the entity-3 i get the same oid as for entity-2. The reason is, the 
> JDBCStoreManager (Line 1031) "Object oid = base.getObjectId(this, result, 
> null, true, null);" gets the same oid for entity-2 and entity-3. 
> I will attache the javaclasses and mapping.xml and a screen from the wrong 
> resultset. 
> see also: https://issues.apache.org/jira/browse/openjpa-2218. 
> I tried to find out a workaround by removing the abstract parent from 
> TestEntityCurrencyReadonly and TestEntityTenorReadonly. 
> In this case, i get the correct Objectinstances but the third entity 
> (TestEntityTenorReadonly) holds the values from TestEntityCurrencyReadonly 
> (also wrong)! 
> Hope it helps to find the bug.
> Axel



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to