You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Sandip Bhoi (JIRA)" <ji...@apache.org> on 2012/09/06 06:46:07 UTC
[jira] [Created] (OPENJPA-2258) OpenJPA is firing separate query
for embedded class in the entity though annotted at
@EagerFetchMode(FetchMode.JOIN)
Sandip Bhoi created OPENJPA-2258:
------------------------------------
Summary: OpenJPA is firing separate query for embedded class in the entity though annotted at @EagerFetchMode(FetchMode.JOIN)
Key: OPENJPA-2258
URL: https://issues.apache.org/jira/browse/OPENJPA-2258
Project: OpenJPA
Issue Type: Bug
Components: jpa
Affects Versions: 2.1.2
Environment: WebSphere Platform 8.0.0.2 [BASE 8.0.0.2 cf021148.03]
Host Operating System is Windows XP, version 5.1
Java version = 1.6.0, Java Compiler = j9jit26, Java VM name = IBM J9 VM
Orb Version = IBM Java ORB build orb626-20111107.00
Reporter: Sandip Bhoi
Priority: Minor
I have a Embedded class in my entity which has some common similar columns for all the tables.
e.g
@Entity
@Table(name = "MY_TABLE")
public class MyTable implements Serializable {
//... some specific fields here
@Embedded
@EagerFetchMode(FetchMode.JOIN)
private CommonRowDetails commonRowDetails;
//...getters and setter below
}
And the class CommonRowDetails contains some audit columns as
@Embeddable
public class CommonRowDetails implements Serializable {
@Column(name = "ROW_ADD_STP", updatable = false)
private Date rowAddStp;
@Column(name = "ROW_ADD_USER_ID", updatable = false)
private String rowAddUserId;
@Column(name = "ROW_UPDATE_USER_ID")
private String rowUpdateUserId;
@Column(name = "ROW_UPDATE_STP")
private Date rowUpdateStp;
//...getters and setter below
}
All above columns are part of same table "MY_TABLE"
So when I select the entity MyTable, I can see a separate query is getting executed for selecting (ROW_ADD_STP, ROW_ADD_USER_ID, ...) which is definitely not required. I also added the annotation @EagerFetchMode(FetchMode.JOIN) on field CommonRowDetails to select those with join/in same query.
Please help me to know, how to avoid OpenJPA firing a separate query.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OPENJPA-2258) OpenJPA is firing separate query
for embedded class in the entity though annotted at
@EagerFetchMode(FetchMode.JOIN)
Posted by "Rick Curtis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-2258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13449652#comment-13449652 ]
Rick Curtis commented on OPENJPA-2258:
--------------------------------------
Can you please post a unit test that shows this behavior?
> OpenJPA is firing separate query for embedded class in the entity though annotted at @EagerFetchMode(FetchMode.JOIN)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-2258
> URL: https://issues.apache.org/jira/browse/OPENJPA-2258
> Project: OpenJPA
> Issue Type: Bug
> Components: jpa
> Affects Versions: 2.1.2
> Environment: WebSphere Platform 8.0.0.2 [BASE 8.0.0.2 cf021148.03]
> Host Operating System is Windows XP, version 5.1
> Java version = 1.6.0, Java Compiler = j9jit26, Java VM name = IBM J9 VM
> Orb Version = IBM Java ORB build orb626-20111107.00
> Reporter: Sandip Bhoi
> Priority: Minor
> Labels: OpenJPA, Performance
>
> I have a Embedded class in my entity which has some common similar columns for all the tables.
> e.g
> @Entity
> @Table(name = "MY_TABLE")
> public class MyTable implements Serializable {
> //... some specific fields here
> @Embedded
> @EagerFetchMode(FetchMode.JOIN)
> private CommonRowDetails commonRowDetails;
> //...getters and setter below
> }
> And the class CommonRowDetails contains some audit columns as
> @Embeddable
> public class CommonRowDetails implements Serializable {
> @Column(name = "ROW_ADD_STP", updatable = false)
> private Date rowAddStp;
> @Column(name = "ROW_ADD_USER_ID", updatable = false)
> private String rowAddUserId;
> @Column(name = "ROW_UPDATE_USER_ID")
> private String rowUpdateUserId;
> @Column(name = "ROW_UPDATE_STP")
> private Date rowUpdateStp;
>
> //...getters and setter below
>
> }
> All above columns are part of same table "MY_TABLE"
> So when I select the entity MyTable, I can see a separate query is getting executed for selecting (ROW_ADD_STP, ROW_ADD_USER_ID, ...) which is definitely not required. I also added the annotation @EagerFetchMode(FetchMode.JOIN) on field CommonRowDetails to select those with join/in same query.
> Please help me to know, how to avoid OpenJPA firing a separate query.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira