You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Michael Dick (JIRA)" <ji...@apache.org> on 2008/10/02 17:29:44 UTC

[jira] Updated: (OPENJPA-731) Bug on FetchType.EAGER when QuerySQLCache is turned on

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

Michael Dick updated OPENJPA-731:
---------------------------------

    Affects Version/s: 1.2.1
                       1.2.0

> Bug on FetchType.EAGER when QuerySQLCache is turned on
> ------------------------------------------------------
>
>                 Key: OPENJPA-731
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-731
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.2.0, 1.2.1
>            Reporter: Fay Wang
>            Assignee: Fay Wang
>             Fix For: 1.3.0
>
>         Attachments: openjpa-731.txt, testcase.jar
>
>
> This JIRA is open on behalf of Enrico:
> OpenJPA 1.2.0 Bug on FetchType.EAGER
> Friday, September 19, 2008 12:49 AM
> From: "egoosen" <eg...@metropolitan.co.za>
> Add sender to Contacts
> To: users@openjpa.apache.org
> I'm experiencing a strange bug in 1.2.0, on an eager loaded one to many
> relationship.
> The first time I run the code, openJPA retrieves the parent entity and eager
> fetches the CORRECT child entities.
> The second time around, it fetches the parent entity and fetches the
> INCORRECT child entities (specifically, it fetches the child entities of the
> parent entity in the previous query).
> Here's the SQL to illustrate:
> First run:
> SELECT t0.AMDCTL_ID, t0.VRS_NBR, t0.AMDSEQ_CDE, t0.DPLORD_NBR, t0.FND_CDE,
> t0.RSL_DTE FROM EBSTATUS.TBL_AMDCTL t0 WHERE t0.FND_CDE = ?
> [params=(String) 0000001]
> SELECT t0.AMDCTL_ID, t1.AMDDES_ID, t1.VRS_NBR, t1.AMD_DES, t1.AMDCTL_ID,
> t1.EFC_DTE FROM EBSTATUS.TBL_AMDCTL t0 INNER JOIN EBSTATUS.TBL_AMDDES t1 ON
> t0.AMDCTL_ID = t1.AMDCTL_ID WHERE t0.FND_CDE = ? ORDER BY t0.AMDCTL_ID ASC
> [params=(String) 0000001]
> Second run:
> SELECT t0.AMDCTL_ID, t0.VRS_NBR, t0.AMDSEQ_CDE, t0.DPLORD_NBR, t0.FND_CDE,
> t0.RSL_DTE FROM EBSTATUS.TBL_AMDCTL t0 WHERE t0.FND_CDE = ?
> [params=(String) 0001001]
> SELECT t0.AMDCTL_ID, t1.AMDDES_ID, t1.VRS_NBR, t1.AMD_DES, t1.AMDCTL_ID,
> t1.EFC_DTE FROM EBSTATUS.TBL_AMDCTL t0 INNER JOIN EBSTATUS.TBL_AMDDES t1 ON
> t0.AMDCTL_ID = t1.AMDCTL_ID WHERE t0.FND_CDE = ? ORDER BY t0.AMDCTL_ID ASC
> [params=(String) 0000001]
> Somehow its caching the second query, even though I've turned off the
> DataCache and QueryCache.
> I've had to revert back to OpenJPA 1.1.0.
> Here's my mappings:
> TblAmdctl.java
> @OneToMany(mappedBy="tblAmdctl",fetch = FetchType.EAGER,cascade = {
> CascadeType.PERSIST,CascadeType.MERGE})
> private Collection<TblAmddes> tblAmddess = new ArrayList<TblAmddes>();
> TblAmddes.java
> @ManyToOne(fetch = FetchType.LAZY,cascade = {
> CascadeType.PERSIST,CascadeType.MERGE })
> @JoinColumns({@JoinColumn(name =
> "AMDCTL_ID",referencedColumnName="AMDCTL_ID")})   
> @ForeignKey
> private TblAmdctl tblAmdctl; 

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