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

Catalina Wei updated OPENJPA-1585:
----------------------------------

    Attachment: OPENJPA-1585.patch

In this patch, a trace channel named 'openjpa.jdbc.Extra' is defined for 
getting additional trace information that may help users relate the SQLs 
generated to entity activities or JPQL queries.

To turn on this trace, add as below:

    <property name="openjpa.Log" value="Query=TRACE,SQL=TRACE,Extra=TRACE"/>

It would only make sense to turn on Extra trace when Query and SQL traces are 
also turned on.

> Additional trace to relate SQL pushdowns with entity action or JPQL query
> -------------------------------------------------------------------------
>
>                 Key: OPENJPA-1585
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1585
>             Project: OpenJPA
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>            Reporter: Catalina Wei
>            Assignee: Catalina Wei
>            Priority: Trivial
>         Attachments: OPENJPA-1585.patch
>
>
> Additional trace can help users understand and relate query or entity actions 
> with SQL pushdowns:
> 1.  why SQL pushdown has JOINs that are generated, a trace dumping out eager 
> relations for the generated SQL is very helpful.
> 2. a JPQL or a simple em.find() generated caused more than one SQL requests.
> 3. entity instance actions (INSERT, UPDATE, DELETE) generated SQL
> Examples:
> 1. JOIN is generated because of the eager relation 'entitya':
> 4891  p1  TRACE  [main] openjpa.Query - Executing query: select s from 
> CascadeB s
> 4906  p1  TRACE  [main] openjpa.jdbc.Extra - Eager relations: 
> [test.entities.CascadeB.entitya]
> 5141  p1  TRACE  [main] openjpa.jdbc.SQL - <t 26882784, conn 9493> executing 
> prepstmnt 25862088 SELECT t0.id, t1.id, t1.name, t0.name FROM CascadeB t0 
> LEFT OUTER JOIN CascadeA t1 ON t0.ENTITYA_ID = t1.id 
> 2. flush for new instance of entity action:
> 7250  p1  TRACE  [main] openjpa.jdbc.Extra - flush: 
> org.apache.openjpa.kernel.PNewState for oid=1
> 7250  p1  TRACE  [main] openjpa.jdbc.SQL -: INSERT INTO BasicA (age,id,name) 
> VALUES (?,?,?) [1,1,name1]
> 2: loading relation 'entitya':
> 7734  p1  TRACE  [main] openjpa.jdbc.Extra - load field: 'entitya' for oid=1 
> class test.entities.BasicB
> 7734  p1  TRACE  [main] openjpa.jdbc.Extra - find: oid=1 class 
> test.entities.BasicA
> 7734  p1  TRACE  [main] openjpa.jdbc.Extra - getInitializeStateResult: oid=1 
> class test.entities.BasicA
> 7969  pdq1  TRACE  [main] openjpa.jdbc.SQL - <t 26882784, conn 3125250> 
> executing prepstmnt 28008463 SELECT t0.name FROM BasicA t0 WHERE t0.id = ?  
> optimize for 1 row [params=(int) 1]

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

Reply via email to