openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ritika Maheshwari (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-168) sql optimize n rows query hint
Date Thu, 15 Mar 2007 17:31:09 GMT

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

Ritika Maheshwari commented on OPENJPA-168:
-------------------------------------------

Abe I do not understand how the SelectImpl.hasEagerJoin method is implemented.I have EmpBean
and DeptBean entities as follows

 public class DeptBean2 implements Serializable {

	   @Id
	 private Integer no;
	   @Column(name="cdname",length=80)
     private String name;
     @OneToMany(fetch=FetchType.EAGER , mappedBy="dept")
     private List<EmpBean2> emps;
     @OneToOne
     private EmpBean2 mgr;

public class EmpBean2 implements Serializable {

        @Id
         Integer empid;

        @Column(name="cesalary",columnDefinition="_double")
         Double salary;

       
        @Column(name="cename",columnDefinition="_varchar")
	 String name;
        
       @Column(name="cehireDate")
         Date hireDate;

       @Column(name="ceismanager" , columnDefinition="_boolean")
         Boolean isManager;

       @Column(name="ceemp_ts")
         Timestamp emp_ts;

        @ManyToOne()
        //@ForeignKey(name="deptno")
      	 DeptBean2 dept;
        

Now I set the EagerFetchMode to parallel and run the following query

 OpenJPAQuery qryE = OpenJPAPersistence.cast(em.createQuery("select d from DeptBean2 d"));
                               qryE.setHint("openjpa.hint.OptimizeResultCount", new Integer(1));
                              List rsE = qryE.getResultList();
These are the selects which are generated 
42902  dwtest  TRACE  [main] openjpa.jdbc.SQL - <t 1094730048, conn 685648094> executing
prepstmnt 808464432 SELECT t0.no, t1.empid, t1.dept_no, t1.ceemp_ts, t1.cehireDate, t1.ceismanager,
t1.cename, t1.cesalary, t0.cdname FROM deptab2 t0 LEFT OUTER JOIN emptab2 t1 ON t0.mgr_empid
= t1.empid optimize for 1 row 
42902  dwtest  TRACE  [main] openjpa.jdbc.SQL - <t 1094730048, conn 685648094> [0 ms]
spent
65474  dwtest  TRACE  [main] openjpa.jdbc.SQL - <t 1094730048, conn 685648094> executing
prepstmnt 1509579258 SELECT t0.no, t1.empid, t2.no, t2.mgr_empid, t2.cdname, t1.ceemp_ts,
t1.cehireDate, t1.ceismanager, t1.cename, t1.cesalary FROM deptab2 t0 INNER JOIN emptab2 t1
ON t0.no = t1.dept_no LEFT OUTER JOIN deptab2 t2 ON t1.dept_no = t2.no ORDER BY t0.no ASC
65474  dwtest  TRACE  [main] openjpa.jdbc.SQL - <t 1094730048, conn 685648094> [0 ms]
spent
105963  dwtest  TRACE  [main] openjpa.jdbc.SQL - <t 1094730048, conn 685648094> executing
prepstmnt 1725589210 SELECT t0.empid, t1.no, t1.cdname, t0.ceemp_ts, t0.cehireDate, t0.ceismanager,
t0.cename, t0.cesalary FROM emptab2 t0 LEFT OUTER JOIN deptab2 t1 ON t0.dept_no = t1.no WHERE
t0.dept_no = ? [params=(int) 2]
106003  dwtest  TRACE  [main] openjpa.jdbc.SQL - <t 1094730048, conn 685648094> [40
ms] spent

when I am executing the 1st select I see 3 eagerKeys in the eagerKey map in the debugger (dept,mgr,emps)
but the selectImpl.hasEagerJoin(toMany) method returns false.So my question is that inspite
of seeing emps in the eagerKey map how come this method returns false.The same holds true
for the second select.So when is the hasEagerJoin method going to return true

> sql optimize n rows query hint
> ------------------------------
>
>                 Key: OPENJPA-168
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-168
>             Project: OpenJPA
>          Issue Type: New Feature
>            Reporter: David Wisneski
>         Assigned To: David Wisneski
>
> There werre various comments from Patrick, Abe and Kevin Sutter about the code that I
checked related to Optimize hint.  So I have gone back and relooked at this and wil be making
some changes.  At Kevin's suggestion I will do this through a JIRA feature so that folks will
have opportunity to comment on this before the code is actually done and checked in.

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


Mime
View raw message