<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
	<id>tag:n2.nabble.com,2006:forum-218414</id>
	<title>Nabble - OpenJPA Commits</title>
	<updated>2009-07-03T20:00:21Z</updated>
	<link rel="self" type="application/atom+xml" href="http://n2.nabble.com/OpenJPA-Commits-f218414.xml" />
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/OpenJPA-Commits-f218414.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:n2.nabble.com,2006:post-3204401</id>
	<title>svn commit: r791052 - in /openjpa/branches/subquery: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java</title>
	<published>2009-07-03T20:00:21Z</published>
	<updated>2009-07-03T20:00:21Z</updated>
	<author>
		<name>faywang</name>
	</author>
	<content type="html">Author: faywang
&lt;br&gt;Date: Sat Jul &amp;nbsp;4 03:00:21 2009
&lt;br&gt;New Revision: 791052
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=791052&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=791052&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;revert change in AndExpression as no extra pair of parentheses are needed when calling AND from OR
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java?rev=791052&amp;r1=791051&amp;r2=791052&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java?rev=791052&amp;r1=791051&amp;r2=791052&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java Sat Jul &amp;nbsp;4 03:00:21 2009
&lt;br&gt;@@ -54,7 +54,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BinaryOpExpState bstate = (BinaryOpExpState) state;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean paren1 = _exp1 instanceof OrExpression;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean paren2 = _exp2 instanceof OrExpression;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;(&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (paren1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;(&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_exp1.appendTo(sel, ctx, bstate.state1, buf);
&lt;br&gt;@@ -66,7 +65,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_exp2.appendTo(sel, ctx, bstate.state2, buf);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (paren2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;)&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sel.append(buf, state.joins);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=791052&amp;r1=791051&amp;r2=791052&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=791052&amp;r1=791051&amp;r2=791052&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java Sat Jul &amp;nbsp;4 03:00:21 2009
&lt;br&gt;@@ -297,11 +297,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t2.CUSTOMER_ID = t5.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t4 ON t3.ADDRESS_ID = t4.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((? &amp;lt; ALL (&amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t1.age FROM CR_ADDR t0 INNER JOIN CompUser t1 ON t0.id = t1.ADD_ID WHERE ((t4.city = t0.city AND &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.ADDRESS_ID = t0.id)) ) AND 1 = 1))&amp;quot;; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t1.age FROM CR_ADDR t0 INNER JOIN CompUser t1 ON t0.id = t1.ADD_ID WHERE (t4.city = t0.city AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.ADDRESS_ID = t0.id) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -318,8 +317,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((? &amp;lt; ALL (SELECT t4.age FROM &amp;nbsp;CompUser t3, CompUser t4 &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.userid = t4.userid) AND (t2.id = t3.ADD_ID) ) AND 1 = 1))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (? &amp;lt; ALL (SELECT t4.age FROM &amp;nbsp;CompUser t3, CompUser t4 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.userid = t4.userid) AND (t2.id = t3.ADD_ID) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -399,10 +398,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t2 ON t0.id = t2.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t0.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (EXISTS (&amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE ((t2.id = t4.id AND t3.id = t4.id)) &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE (t2.id = t4.id AND t3.id = t4.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -429,10 +427,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t2 ON t0.id = t2.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t0.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE ((t2.id = t4.id AND t3.id = t4.id)) &amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) )))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE (t2.id = t4.id AND t3.id = t4.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) )))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -459,11 +456,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select distinct o.id from LineItem i, Order o&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where i.quantity &amp;gt; 10 and o.count &amp;gt; 1000 and i.id = o.id)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t0.id IN (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.id IN (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT DISTINCT t2.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t3.quantity &amp;gt; ? AND (t2.count &amp;gt; ? AND t3.id = t2.id))) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.quantity &amp;gt; ? AND t2.count &amp;gt; ? AND t3.id = t2.id) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -546,10 +542,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;or exists (select o from c.orders o where o.id = 2)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name FROM CR_CUST t0 WHERE (EXISTS (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 &amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((t2.id = ? AND t1.id = t2.id)) AND (t0.id = t1.CUSTOMER_ID) ) OR EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t2.id = ? AND t1.id = t2.id) AND (t0.id = t1.CUSTOMER_ID) ) OR EXISTS (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((t4.id = ? AND t3.id = t4.id)) AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t4.id = ? AND t3.id = t4.id) AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -561,8 +557,8 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t1.quantity &amp;gt;= (SELECT MAX(t2.quantity) FROM CR_ODR t2 ) AND &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;lt;= (SELECT AVG(t3.quantity) FROM CR_ODR t3 )))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;gt;= (SELECT MAX(t2.quantity) FROM CR_ODR t2 ) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;lt;= (SELECT AVG(t3.quantity) FROM CR_ODR t3 ))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -582,14 +578,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; and (select min(o2.quantity) from Customer c, in(c.orders)&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; o2)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t4.id FROM CR_ODR t4 WHERE &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;((t4.quantity &amp;gt;= (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT AVG(t1.quantity) &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t4.id FROM CR_ODR t4 WHERE (t4.quantity &amp;gt;= (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT AVG(t1.quantity) &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID ) AND &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.quantity &amp;lt;= (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MIN(t3.quantity) &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID )))&amp;quot;; 
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID ))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -626,11 +620,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE m3.idPublisher.id = p.id)) &amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t1.id, t1.date_published, t1.id_publisher, t1.name &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM Publisher t0 LEFT OUTER JOIN Magazine t1 ON t0.id = t1.id_publisher WHERE &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t1.id = (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t2.id) FROM Magazine t2 WHERE ((&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM Publisher t0 LEFT OUTER JOIN Magazine t1 ON t0.id = t1.id_publisher WHERE (t1.id = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t2.id) FROM Magazine t2 WHERE (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id_publisher = t0.id AND &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id = (SELECT MAX(t3.id) FROM Magazine t3 WHERE (t3.id_publisher = t0.id) ))) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id = (SELECT MAX(t3.id) FROM Magazine t3 WHERE (t3.id_publisher = t0.id) )) ))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -654,7 +647,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;o.id)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT (t2.quantity * ?) FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t3.quantity &amp;gt; ? AND (t2.quantity &amp;gt; ? AND t3.id = t2.id))) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.quantity &amp;gt; ? AND t2.quantity &amp;gt; ? AND t3.id = t2.id) ))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r791052---in--openjpa-branches-subquery%3A-openjpa-jdbc-src-main-java-org-apache-openjpa-jdbc-kernel-exps-AndExpression.java-openjpa-persistence-jdbc-src-test-java-org-apache-openjpa-per-tp3204401p3204401.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3203928</id>
	<title>svn commit: r791040 - in /openjpa/branches/subquery: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/</title>
	<published>2009-07-03T16:58:09Z</published>
	<updated>2009-07-03T16:58:09Z</updated>
	<author>
		<name>faywang</name>
	</author>
	<content type="html">Author: faywang
&lt;br&gt;Date: Fri Jul &amp;nbsp;3 23:58:09 2009
&lt;br&gt;New Revision: 791040
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=791040&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=791040&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;fix nested subquery correlation problem and AND precedence problem when calling from OR
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Request.java
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Account.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/AndExpression.java Fri Jul &amp;nbsp;3 23:58:09 2009
&lt;br&gt;@@ -54,6 +54,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BinaryOpExpState bstate = (BinaryOpExpState) state;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean paren1 = _exp1 instanceof OrExpression;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean paren2 = _exp2 instanceof OrExpression;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;(&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (paren1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;(&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_exp1.appendTo(sel, ctx, bstate.state1, buf);
&lt;br&gt;@@ -65,6 +66,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_exp2.appendTo(sel, ctx, bstate.state2, buf);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (paren2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;)&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buf.append(&amp;quot;)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sel.append(buf, state.joins);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java Fri Jul &amp;nbsp;3 23:58:09 2009
&lt;br&gt;@@ -615,8 +615,27 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins.moveJoinsToParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins.setJoinContext(null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_actions == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String subqAlias = findSubqAlias(sel);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins = pstate.joins.setSubselect(subqAlias);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins.setCorrelatedVariable(_schemaAlias);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pstate;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String findSubqAlias(Select sel) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Select pSel = sel.getParent();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pSel == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context pCtx = pSel.ctx();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pCtx.subquery == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pCtx.getSchema(_schemaAlias) != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((SubQ)pCtx.subquery).getCandidateAlias();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return findSubqAlias(pSel);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * When a PCPath is in subselect, and it is simply a navigation
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Account.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Account.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Account.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Account.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Account.java Fri Jul &amp;nbsp;3 23:58:09 2009
&lt;br&gt;@@ -19,8 +19,10 @@
&lt;br&gt;&amp;nbsp;package org.apache.openjpa.persistence.criteria;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;+import javax.persistence.FetchType;
&lt;br&gt;&amp;nbsp;import javax.persistence.GeneratedValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Id;
&lt;br&gt;+import javax.persistence.ManyToOne;
&lt;br&gt;&amp;nbsp;import javax.persistence.OneToOne;
&lt;br&gt;&amp;nbsp;import javax.persistence.Table;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -40,6 +42,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@OneToOne
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Person owner;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@ManyToOne
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Customer customer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@ManyToOne(optional = false, fetch = FetchType.LAZY)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Product product;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String name;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public long getId() {
&lt;br&gt;@@ -77,4 +85,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setLoan(Integer loan) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.loan = loan;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Product getProduct() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return product;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setProduct(Product product) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.product = product;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Customer getCustomer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return customer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setCustomer(Customer customer) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.customer = customer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Added: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Request.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Request.java?rev=791040&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Request.java?rev=791040&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Request.java (added)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/Request.java Fri Jul &amp;nbsp;3 23:58:09 2009
&lt;br&gt;@@ -0,0 +1,52 @@
&lt;br&gt;+package org.apache.openjpa.persistence.criteria;
&lt;br&gt;+
&lt;br&gt;+import java.sql.Date;
&lt;br&gt;+
&lt;br&gt;+import javax.persistence.*;
&lt;br&gt;+
&lt;br&gt;+@Entity
&lt;br&gt;+public class Request {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; @Id
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int id;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; private short status;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; @ManyToOne(optional = false, fetch = FetchType.LAZY)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; private Account account;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; Date requestTime;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public int getId() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return id;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public void setId(int id) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.id = id;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public short getStatus() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return status;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public void setStatus(short status) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.status = status;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public Account getAccount() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return account;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public void setAccount(Account account) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.account = account;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public Date getRequestTime() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return requestTime;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; public void setRequestTime(Date requestTime) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.requestTime = requestTime;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=791040&amp;r1=791039&amp;r2=791040&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java Fri Jul &amp;nbsp;3 23:58:09 2009
&lt;br&gt;@@ -170,6 +170,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubqueries4e() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT c FROM Customer c WHERE EXISTS &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT o.id FROM Order o WHERE o.customer = c)&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t1.id, t1.accountNum, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, t1.balanceOwed, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t1.creditRating, t1.filledOrderCount, t1.firstName, t1.lastName, t1.name, t1.status &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t1 &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID WHERE &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;(EXISTS (SELECT t0.id FROM CR_ODR t0 WHERE (t0.CUSTOMER_ID = t1.id) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries5() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o WHERE 10000 &amp;lt; ALL (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT a.balance FROM o.customer c JOIN c.accounts a)&amp;quot;;
&lt;br&gt;@@ -283,10 +297,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t2.CUSTOMER_ID = t5.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t4 ON t3.ADDRESS_ID = t4.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t1.age FROM CR_ADDR t0 INNER JOIN CompUser t1 ON t0.id = t1.ADD_ID WHERE (t4.city = t0.city AND &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.ADDRESS_ID = t0.id) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((? &amp;lt; ALL (&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t1.age FROM CR_ADDR t0 INNER JOIN CompUser t1 ON t0.id = t1.ADD_ID WHERE ((t4.city = t0.city AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.ADDRESS_ID = t0.id)) ) AND 1 = 1))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -303,8 +318,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (? &amp;lt; ALL (SELECT t4.age FROM &amp;nbsp;CompUser t3, CompUser t4 &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.userid = t4.userid) AND (t2.id = t3.ADD_ID) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((? &amp;lt; ALL (SELECT t4.age FROM &amp;nbsp;CompUser t3, CompUser t4 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.userid = t4.userid) AND (t2.id = t3.ADD_ID) ) AND 1 = 1))&amp;quot;; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -384,9 +399,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t2 ON t0.id = t2.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t0.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (EXISTS (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE (t2.id = t4.id AND t3.id = t4.id) &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (EXISTS (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE ((t2.id = t4.id AND t3.id = t4.id)) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -413,9 +429,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t2 ON t0.id = t2.CUSTOMER_ID &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t0.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE (t2.id = t4.id AND t3.id = t4.id) &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) )))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE ((t2.id = t4.id AND t3.id = t4.id)) &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) )))&amp;quot;; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -442,10 +459,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select distinct o.id from LineItem i, Order o&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where i.quantity &amp;gt; 10 and o.count &amp;gt; 1000 and i.id = o.id)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.id IN (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t0.id IN (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT DISTINCT t2.id &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.quantity &amp;gt; ? AND t2.count &amp;gt; ? AND t3.id = t2.id) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t3.quantity &amp;gt; ? AND (t2.count &amp;gt; ? AND t3.id = t2.id))) ))&amp;quot;; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -528,10 +546,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;or exists (select o from c.orders o where o.id = 2)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name FROM CR_CUST t0 WHERE (EXISTS (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t2.id = ? AND t1.id = t2.id) AND (t0.id = t1.CUSTOMER_ID) ) OR EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((t2.id = ? AND t1.id = t2.id)) AND (t0.id = t1.CUSTOMER_ID) ) OR EXISTS (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t4.id = ? AND t3.id = t4.id) AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((t4.id = ? AND t3.id = t4.id)) AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -543,8 +561,8 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;gt;= (SELECT MAX(t2.quantity) FROM CR_ODR t2 ) AND &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;lt;= (SELECT AVG(t3.quantity) FROM CR_ODR t3 ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t1.quantity &amp;gt;= (SELECT MAX(t2.quantity) FROM CR_ODR t2 ) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;lt;= (SELECT AVG(t3.quantity) FROM CR_ODR t3 )))&amp;quot;; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -564,12 +582,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; and (select min(o2.quantity) from Customer c, in(c.orders)&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; o2)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t4.id FROM CR_ODR t4 WHERE (t4.quantity &amp;gt;= (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT AVG(t1.quantity) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t4.id FROM CR_ODR t4 WHERE &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;((t4.quantity &amp;gt;= (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT AVG(t1.quantity) &amp;quot; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID ) AND &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.quantity &amp;lt;= (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MIN(t3.quantity) &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID )))&amp;quot;; 
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -606,10 +626,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE m3.idPublisher.id = p.id)) &amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t1.id, t1.date_published, t1.id_publisher, t1.name &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM Publisher t0 LEFT OUTER JOIN Magazine t1 ON t0.id = t1.id_publisher WHERE (t1.id = (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t2.id) FROM Magazine t2 WHERE (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM Publisher t0 LEFT OUTER JOIN Magazine t1 ON t0.id = t1.id_publisher WHERE &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t1.id = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t2.id) FROM Magazine t2 WHERE ((&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id_publisher = t0.id AND &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id = (SELECT MAX(t3.id) FROM Magazine t3 WHERE (t3.id_publisher = t0.id) )) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id = (SELECT MAX(t3.id) FROM Magazine t3 WHERE (t3.id_publisher = t0.id) ))) ))&amp;quot;; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -633,7 +654,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;o.id)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT (t2.quantity * ?) FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.quantity &amp;gt; ? AND t2.quantity &amp;gt; ? AND t3.id = t2.id) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t3.quantity &amp;gt; ? AND (t2.quantity &amp;gt; ? AND t3.id = t2.id))) ))&amp;quot;; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -821,6 +842,39 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testCorrelatedNestedSubquery1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;Select Object (c) From Customer c Where Not Exists (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; Select a.id From Account As a Where &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a.customer = c &amp;nbsp;And &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exists (select o.id from Order o where o.customer = c and o.count = 1))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t1.id, t1.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.balanceOwed, t1.creditRating, t1.filledOrderCount, t1.firstName, t1.lastName, t1.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t1 LEFT OUTER JOIN CR_ADDR t3 ON t1.ADDRESS_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t0.id FROM CR_ACCT t0 WHERE ((t0.CUSTOMER_ID = t1.id AND EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM CR_ODR t2 WHERE ((t2.CUSTOMER_ID = t1.id AND t2.count = ?)) ))) )))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testCorrelatedNestedSubquery1a() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;Select Object (o) From Product o Where Not Exists (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; Select a.id From Account As a Where &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a.product = o &amp;nbsp;And &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exists (select r.id from Request r where r.account = a and r.status = 1))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t1.pid, t1.version, t1.productType FROM CR_PRDT t1 WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t0.id FROM CR_ACCT t0 WHERE ((t0.PRODUCT_PID = t1.pid AND EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM Request t2 WHERE ((t2.ACCOUNT_ID = t0.id AND t2.status = ?)) ))) )))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;void execute(String jpql, String expectedSQL) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sql.clear();
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r791040---in--openjpa-branches-subquery%3A-openjpa-jdbc-src-main-java-org-apache-openjpa-jdbc-kernel-exps--openjpa-persistence-jdbc-src-test-java-org-apache-openjpa-persistence-criteria--tp3203928p3203928.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3202065</id>
	<title>svn commit: r790951 - in /openjpa/branches/subquery: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/ openjpa-persistenc...</title>
	<published>2009-07-03T08:53:57Z</published>
	<updated>2009-07-03T08:53:57Z</updated>
	<author>
		<name>faywang</name>
	</author>
	<content type="html">Author: faywang
&lt;br&gt;Date: Fri Jul &amp;nbsp;3 15:53:56 2009
&lt;br&gt;New Revision: 790951
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790951&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790951&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;fix cross join and subquery
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Context.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/PCPath.java Fri Jul &amp;nbsp;3 15:53:56 2009
&lt;br&gt;@@ -106,6 +106,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_type = UNBOUND_VAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;action.op = Action.UNBOUND_VAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;action.data = var;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_schemaAlias = var.getName();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// bound variable; copy path
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_type = UNACCESSED_VAR;
&lt;br&gt;@@ -511,7 +512,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rel == null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	throw new IllegalArgumentException(_loc.get(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;quot;invalid-unbound-var&amp;quot;, var.getName()).toString());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins = pstate.joins.setVariable(var.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (sel.getParent() != null &amp;&amp; action.var != null &amp;&amp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sel.ctx().getVariable(action.var) == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;action var=&amp;quot;+action.var);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isCorrelatedPath = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins = pstate.joins.setCorrelatedVariable(var.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins = pstate.joins.setVariable(var.getName());
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pstate.joins = pstate.joins.crossJoin(_candidate.getTable(),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rel.getTable());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java Fri Jul &amp;nbsp;3 15:53:56 2009
&lt;br&gt;@@ -2781,9 +2781,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// until we get past the local table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String var = this.var;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.var = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context ctx = context; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context = null; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int alias1 = _sel.getTableIndex(localTable, this, true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.append(var);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.append(correlatedVar);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context = ctx; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int alias2 = _sel.getTableIndex(foreignTable, this, true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Join j = new Join(localTable, alias1, foreignTable, alias2,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;null, false);
&lt;br&gt;@@ -2792,7 +2797,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_joins == null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_joins = new JoinSet();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_joins.add(j);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCorrelated(j);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_outer = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lastContext = &amp;nbsp;context;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return this;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Context.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Context.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Context.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Context.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Context.java Fri Jul &amp;nbsp;3 15:53:56 2009
&lt;br&gt;@@ -143,7 +143,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public ClassMetaData getSchema(String id) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return schemas.get(id.toLowerCase());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return schemas.get(id.toLowerCase());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=790951&amp;r1=790950&amp;r2=790951&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java Fri Jul &amp;nbsp;3 15:53:56 2009
&lt;br&gt;@@ -585,17 +585,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// a correated JPQL generates non correlated SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubquery13() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o1.id, c.name from Order o1, Customer c&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o1.quantity = &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; any(select o2.quantity from in(c.orders) o2)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t1.name &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 JOIN CR_CUST t1 ON (1 = 1) WHERE (t0.quantity = ANY (&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.quantity &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 JOIN CR_CUST t2 ON (1 = 1) &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID, CR_ODR t4 WHERE (t3.id = t4.id) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t1.name &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 JOIN CR_CUST t1 ON (1 = 1) WHERE (t0.quantity = ANY (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t3.quantity FROM &amp;nbsp;CR_ODR t2, CR_ODR t3 WHERE (t2.id = t3.id) AND (t1.id = t2.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790951---in--openjpa-branches-subquery%3A-openjpa-jdbc-src-main-java-org-apache-openjpa-jdbc-kernel-exps--openjpa-jdbc-src-main-java-org-apache-openjpa-jdbc-sql--openjpa-kernel-src-main-tp3202065p3202065.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3198422</id>
	<title>svn commit: r790761 - /openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java</title>
	<published>2009-07-02T16:24:32Z</published>
	<updated>2009-07-02T16:24:32Z</updated>
	<author>
		<name>faywang</name>
	</author>
	<content type="html">Author: faywang
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 23:24:32 2009
&lt;br&gt;New Revision: 790761
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790761&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790761&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;update subquery test case
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=790761&amp;r1=790760&amp;r2=790761&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java?rev=790761&amp;r1=790760&amp;r2=790761&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java Thu Jul &amp;nbsp;2 23:24:32 2009
&lt;br&gt;@@ -18,13 +18,12 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package org.apache.openjpa.persistence.criteria;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+import java.util.Date;
&lt;br&gt;&amp;nbsp;import java.util.List;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.PersistenceException;
&lt;br&gt;&amp;nbsp;import javax.persistence.Query;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import org.apache.openjpa.persistence.test.AllowFailure;
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Tests type-strict version of Criteria API.
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;@@ -41,12 +40,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT goodCustomer FROM Customer goodCustomer WHERE &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;goodCustomer.balanceOwed &amp;lt; (SELECT AVG(c.balanceOwed) &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; FROM Customer c)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, t0.name, t0.status &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t0.balanceOwed &amp;lt; (SELECT AVG(t1.balanceOwed) FROM CR_CUST t1 ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, t0.name, t0.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t0.balanceOwed &amp;lt; (SELECT AVG(t1.balanceOwed) FROM CR_CUST t1 ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -55,19 +54,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT DISTINCT emp FROM Employee emp WHERE EXISTS (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT spouseEmp FROM Employee spouseEmp WHERE spouseEmp =&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; emp.spouse)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t1.empId, t1.EMP_TYPE, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, t4.deptNo, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.name, t5.id, t5.annualMiles, t5.name, t6.id, t7.deptNo, t7.name, t6.name, t6.salary, t1.name, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t1.rating, t1.salary, t8.empId, t8.EMP_TYPE, t8.ADDRESS_ID, t8.DEPARTMENT_DEPTNO, t8.FREQUENTFLIERPLAN_ID, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t8.MANAGER_ID, t8.name, t8.rating, t8.salary, t8.hireDate, t1.hireDate &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_EMP t1 LEFT OUTER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_DEPT t4 ON t1.DEPARTMENT_DEPTNO = t4.deptNo &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN FrequentFlierPlan t5 ON t1.FREQUENTFLIERPLAN_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_MGR t6 ON t1.MANAGER_ID = t6.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_EMP t8 ON t1.SPOUSE_EMPID = t8.empId &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_DEPT t7 ON t6.DEPARTMENT_DEPTNO = t7.deptNo &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (EXISTS (SELECT t0.empId FROM CR_EMP t0 WHERE (t0.empId = t1.SPOUSE_EMPID) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t1.empId, t1.EMP_TYPE, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, t4.deptNo, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.name, t5.id, t5.annualMiles, t5.name, t6.id, t7.deptNo, t7.name, t6.name, t6.salary, t1.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.rating, t1.salary, t8.empId, t8.EMP_TYPE, t8.ADDRESS_ID, t8.DEPARTMENT_DEPTNO, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t8.FREQUENTFLIERPLAN_ID, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t8.MANAGER_ID, t8.name, t8.rating, t8.salary, t8.hireDate, t1.hireDate &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_EMP t1 LEFT OUTER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_DEPT t4 ON t1.DEPARTMENT_DEPTNO = t4.deptNo &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN FrequentFlierPlan t5 ON t1.FREQUENTFLIERPLAN_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_MGR t6 ON t1.MANAGER_ID = t6.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_EMP t8 ON t1.SPOUSE_EMPID = t8.empId &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_DEPT t7 ON t6.DEPARTMENT_DEPTNO = t7.deptNo &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (EXISTS (SELECT t0.empId FROM CR_EMP t0 WHERE (t0.empId = t1.SPOUSE_EMPID) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -76,33 +76,34 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT emp FROM Employee emp WHERE emp.salary &amp;gt; ALL (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT m.salary FROM Manager m WHERE m.department = &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;emp.department)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.empId, t0.EMP_TYPE, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, t4.deptNo, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.name, t5.id, t5.annualMiles, t5.name, t6.id, t7.deptNo, t7.name, t6.name, t6.salary, t0.name, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.rating, t0.salary, t8.empId, t8.EMP_TYPE, t8.ADDRESS_ID, t8.DEPARTMENT_DEPTNO, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t8.FREQUENTFLIERPLAN_ID, t8.MANAGER_ID, t8.name, t8.rating, t8.salary, t8.hireDate, t0.hireDate &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_EMP t0 LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_DEPT t4 ON t0.DEPARTMENT_DEPTNO = t4.deptNo &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN FrequentFlierPlan t5 ON t0.FREQUENTFLIERPLAN_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_MGR t6 ON t0.MANAGER_ID = t6.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_EMP t8 ON t0.SPOUSE_EMPID = t8.empId &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_DEPT t7 ON t6.DEPARTMENT_DEPTNO = t7.deptNo &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t0.salary &amp;gt; ALL (SELECT t1.salary &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_MGR t1 WHERE (t1.DEPARTMENT_DEPTNO = t0.DEPARTMENT_DEPTNO) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.empId, t0.EMP_TYPE, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, t4.deptNo, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.name, t5.id, t5.annualMiles, t5.name, t6.id, t7.deptNo, t7.name, t6.name, t6.salary, t0.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.rating, t0.salary, t8.empId, t8.EMP_TYPE, t8.ADDRESS_ID, t8.DEPARTMENT_DEPTNO, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t8.FREQUENTFLIERPLAN_ID, t8.MANAGER_ID, t8.name, t8.rating, t8.salary, t8.hireDate, t0.hireDate &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_EMP t0 LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_DEPT t4 ON t0.DEPARTMENT_DEPTNO = t4.deptNo &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN FrequentFlierPlan t5 ON t0.FREQUENTFLIERPLAN_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_MGR t6 ON t0.MANAGER_ID = t6.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_EMP t8 ON t0.SPOUSE_EMPID = t8.empId &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_DEPT t7 ON t6.DEPARTMENT_DEPTNO = t7.deptNo &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t0.salary &amp;gt; ALL (SELECT t1.salary &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_MGR t1 WHERE (t1.DEPARTMENT_DEPTNO = t0.DEPARTMENT_DEPTNO) ))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries4() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT c FROM Customer c WHERE &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT COUNT(o) FROM c.orders o) &amp;gt; 10&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, t0.balanceOwed, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.creditRating, &amp;quot; + &amp;quot;t0.filledOrderCount, t0.firstName, t0.lastName, t0.name, t0.status &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 LEFT OUTER JOIN CR_ADDR t3 ON t0.ADDRESS_ID = t3.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE ((SELECT COUNT(t2.id) FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 WHERE (t1.id = t2.id) AND &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;(t0.id = t1.CUSTOMER_ID) ) &amp;gt; ?)&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.balanceOwed, t0.creditRating, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.filledOrderCount, t0.firstName, t0.lastName, t0.name, t0.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 LEFT OUTER JOIN CR_ADDR t3 ON t0.ADDRESS_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((SELECT COUNT(t2.id) FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 WHERE (t1.id = t2.id) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t0.id = t1.CUSTOMER_ID) ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -110,41 +111,40 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries4a() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT c FROM Customer c WHERE &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT COUNT(o) FROM Customer c1 JOIN c1.orders o WHERE c = c1) &amp;gt; 10&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, t2.balanceOwed, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, t2.name, t2.status &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t2 LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE ((SELECT COUNT(t1.id) &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (t2.id = t0.id) ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, t2.name, t2.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((SELECT COUNT(t1.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (t2.id = t0.id) ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries4b() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT c FROM Customer c WHERE &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT COUNT(o) FROM Customer c1 JOIN c1.orders o WHERE c.id = c1.id) &amp;gt; 10&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, t2.balanceOwed, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, t2.name, t2.status &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t2 LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE ((SELECT COUNT(t1.id) &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (t2.id = t0.id) ) &amp;gt; ?)&amp;quot;; 
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, t2.name, t2.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((SELECT COUNT(t1.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (t2.id = t0.id) ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries4c() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT c FROM Customer c WHERE &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT COUNT(o) FROM Customer c1 JOIN c1.orders o) &amp;gt; 10&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, t2.balanceOwed, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, t2.name, t2.status &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t2 LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE ((SELECT COUNT(t1.id) FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID ) &amp;gt; ?)&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t3.id, t3.city, t3.country, t3.county, t3.state, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, t4.name, t3.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, t2.name, t2.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((SELECT COUNT(t1.id) FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -153,19 +153,19 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT c FROM Customer c WHERE (SELECT COUNT(o) &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM Customer c1 JOIN c1.orders o WHERE c.address.county = c1.address.county) &amp;gt; 10&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.zipCode, t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.name, t2.status &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t2 &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t2.ADDRESS_ID = t5.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE ((SELECT COUNT(t1.id) &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ADDR t4 ON t0.ADDRESS_ID = t4.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t3.county = t4.county) ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.zipCode, t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, t2.lastName, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.name, t2.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t2.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE ((SELECT COUNT(t1.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t4 ON t0.ADDRESS_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.county = t4.county) ) &amp;gt; ?)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -173,13 +173,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries5() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o WHERE 10000 &amp;lt; ALL (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT a.balance FROM o.customer c JOIN c.accounts a)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t3.id, t3.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.delivered, t3.name, t3.orderTs, t3.quantity, t3.totalCost FROM CR_ODR t3 LEFT OUTER JOIN CR_CUST t4 ON &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.CUSTOMER_ID = t4.id LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id LEFT OUTER JOIN CompUser t6 ON &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.id = t6.ADD_ID WHERE (? &amp;lt; ALL (SELECT t2.balance FROM CR_CUST t0 INNER JOIN CR_CUST_CR_ACCT t1 ON &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.id = t1.CUSTOMER_ID INNER JOIN CR_ACCT t2 ON t1.ACCOUNTS_ID = t2.id WHERE (t3.CUSTOMER_ID = t0.id) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t3.id, t3.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.delivered, t3.name, t3.orderTs, t3.quantity, t3.totalCost &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t3 LEFT OUTER JOIN CR_CUST t4 ON t3.CUSTOMER_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (? &amp;lt; ALL (SELECT t2.balance FROM CR_CUST t0 INNER JOIN CR_CUST_CR_ACCT t1 ON &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.id = t1.CUSTOMER_ID INNER JOIN CR_ACCT t2 ON t1.ACCOUNTS_ID = t2.id &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.CUSTOMER_ID = t0.id) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -187,33 +190,33 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries5a() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o WHERE o.name = SOME (&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT a.name FROM o.customer c JOIN c.accounts a)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t3.id, t3.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.delivered, t3.name, t3.orderTs, t3.quantity, t3.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t3 LEFT OUTER JOIN CR_CUST t4 ON t3.CUSTOMER_ID = t4.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t3.name = ANY (SELECT t2.name &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 INNER JOIN CR_CUST_CR_ACCT t1 ON t0.id = t1.CUSTOMER_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ACCT t2 ON t1.ACCOUNTS_ID = t2.id WHERE (t3.CUSTOMER_ID = t0.id) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t3.id, t3.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.delivered, t3.name, t3.orderTs, t3.quantity, t3.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t3 LEFT OUTER JOIN CR_CUST t4 ON t3.CUSTOMER_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.name = ANY (SELECT t2.name &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_CUST_CR_ACCT t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ACCT t2 ON t1.ACCOUNTS_ID = t2.id WHERE (t3.CUSTOMER_ID = t0.id) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c WHERE 10000 &amp;lt; &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;ALL (SELECT a.balance FROM c.accounts a)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t4 ON t0.CUSTOMER_ID = t4.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t3.balance FROM &amp;nbsp;CR_CUST_CR_ACCT t2, CR_ACCT t3 WHERE (t2.ACCOUNTS_ID = t3.id) AND &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;(t1.id = t2.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t4 ON t0.CUSTOMER_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t3.balance FROM &amp;nbsp;CR_CUST_CR_ACCT t2, CR_ACCT t3 WHERE (t2.ACCOUNTS_ID = t3.id) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t1.id = t2.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -221,67 +224,68 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6a() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c WHERE o.name = &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SOME (SELECT a.name FROM c.accounts a)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t4 ON t0.CUSTOMER_ID = t4.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (t0.name = ANY (&amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t3.name FROM &amp;nbsp;CR_CUST_CR_ACCT t2, CR_ACCT t3 WHERE (t2.ACCOUNTS_ID = t3.id) &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;AND (t1.id = t2.CUSTOMER_ID) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t4 ON t0.CUSTOMER_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (t0.name = ANY (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t3.name FROM &amp;nbsp;CR_CUST_CR_ACCT t2, CR_ACCT t3 WHERE (t2.ACCOUNTS_ID = t3.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t1.id = t2.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6b() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c WHERE o.name = &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SOME (SELECT a.county FROM c.address a)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t3.id, t3.accountNum, t4.id, t4.city, t4.country, t4.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.state, t4.street, t5.userid, t5.DTYPE, t5.age, t5.compName, t5.creditRating, t5.name, t4.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.balanceOwed, t3.creditRating, t3.filledOrderCount, t3.firstName, t3.lastName, t3.name, t3.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t3 ON t0.CUSTOMER_ID = t3.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t4 ON t3.ADDRESS_ID = t4.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t5 ON t4.id = t5.ADD_ID WHERE (t0.name = ANY &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;(SELECT t2.county FROM CR_ADDR t2 WHERE (t1.ADDRESS_ID = t2.id) ))&amp;quot;; 
&lt;br&gt;-;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t3.id, t3.accountNum, t4.id, t4.city, t4.country, t4.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.state, t4.street, t5.userid, t5.DTYPE, t5.age, t5.compName, t5.creditRating, t5.name, t4.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.balanceOwed, t3.creditRating, t3.filledOrderCount, t3.firstName, t3.lastName, t3.name, t3.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t3 ON t0.CUSTOMER_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t4 ON t3.ADDRESS_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t5 ON t4.id = t5.ADD_ID WHERE (t0.name = ANY &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT t2.county FROM CR_ADDR t2 WHERE (t1.ADDRESS_ID = t2.id) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6c() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c WHERE 10000 &amp;lt; &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;ALL (SELECT u.age FROM c.address a JOIN a.user u)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL1 = &amp;quot;SELECT t0.id, t0.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t4 ON t0.CUSTOMER_ID = t4.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t3.age FROM CR_ADDR t2 INNER JOIN CompUser t3 ON t2.id = t3.ADD_ID WHERE (t1.ADDRESS_ID = t2.id) ))&amp;quot;; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL1 = &amp;quot;SELECT t0.id, t0.count, t4.id, t4.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, t5.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.balanceOwed, t4.creditRating, t4.filledOrderCount, t4.firstName, t4.lastName, t4.name, t4.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t4 ON t0.CUSTOMER_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t4.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t3.age FROM CR_ADDR t2 INNER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t1.ADDRESS_ID = t2.id) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- 
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6d() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c JOIN c.address a WHERE 10000 &amp;lt; &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;ALL (SELECT u.age FROM c.address a1 JOIN a1.user u WHERE a.city = a1.city)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.count, t5.id, t5.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.balanceOwed, t5.creditRating, t5.filledOrderCount, t5.firstName, t5.lastName, t5.name, t5.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.delivered, t2.name, t2.orderTs, t2.quantity, t2.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t2 INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t2.CUSTOMER_ID = t5.id &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ADDR t4 ON t3.ADDRESS_ID = t4.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t1.age FROM CR_ADDR t0 INNER JOIN CompUser t1 ON t0.id = t1.ADD_ID WHERE (t4.city = t0.city AND &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.ADDRESS_ID = t0.id) ) AND 1 = 1)&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id, t2.count, t5.id, t5.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.balanceOwed, t5.creditRating, t5.filledOrderCount, t5.firstName, t5.lastName, t5.name, t5.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.delivered, t2.name, t2.orderTs, t2.quantity, t2.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t2 INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t2.CUSTOMER_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t4 ON t3.ADDRESS_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t1.age FROM CR_ADDR t0 INNER JOIN CompUser t1 ON t0.id = t1.ADD_ID WHERE (t4.city = t0.city AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.ADDRESS_ID = t0.id) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -289,64 +293,518 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6e() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c JOIN c.address a WHERE 10000 &amp;lt; &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;ALL (SELECT u.age FROM a.user u)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t5.id, t5.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.balanceOwed, t5.creditRating, t5.filledOrderCount, t5.firstName, t5.lastName, t5.name, t5.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t0.CUSTOMER_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (? &amp;lt; ALL (SELECT t4.age FROM &amp;nbsp;CompUser t3, CompUser t4 &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t3.userid = t4.userid) AND (t2.id = t3.ADD_ID) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t5.id, t5.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.balanceOwed, t5.creditRating, t5.filledOrderCount, t5.firstName, t5.lastName, t5.name, t5.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t0.CUSTOMER_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (? &amp;lt; ALL (SELECT t4.age FROM &amp;nbsp;CompUser t3, CompUser t4 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.userid = t4.userid) AND (t2.id = t3.ADD_ID) ) AND 1 = 1)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6f() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer c WHERE 10000 &amp;lt; &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;ALL (SELECT u.age FROM c.address.user u)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t5.id, t5.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t5.balanceOwed, t5.creditRating, t5.filledOrderCount, t5.firstName, t5.lastName, t5.name, t5.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t0.CUSTOMER_ID = t5.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (? &amp;lt; ALL (SELECT t4.age &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ADDR t2 INNER JOIN CompUser t3 ON t2.id = t3.ADD_ID, CompUser t4 &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t3.userid = t4.userid) AND (t1.ADDRESS_ID = t2.id) ))&amp;quot;; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t5.id, t5.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.balanceOwed, t5.creditRating, t5.filledOrderCount, t5.firstName, t5.lastName, t5.name, t5.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_CUST t5 ON t0.CUSTOMER_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t5.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (? &amp;lt; ALL (SELECT t4.age &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ADDR t2 INNER JOIN CompUser t3 ON t2.id = t3.ADD_ID, CompUser t4 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t3.userid = t4.userid) AND (t1.ADDRESS_ID = t2.id) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// redundant t3
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// compare to 6e, t3 should be in main query for LEFT OUTER JOIN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSubqueries6g() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o FROM Order o JOIN o.customer.address a WHERE 10000 &amp;lt; &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;ALL (SELECT u.age FROM a.user u)&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t1.id, t1.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t1.balanceOwed, t1.creditRating, t1.filledOrderCount, t1.firstName, t1.lastName, t1.name, t1.status, &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;INNER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t1.ADDRESS_ID = t6.id &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT t5.age FROM &amp;nbsp;CR_CUST t3, &amp;nbsp;CompUser t4, CompUser t5 &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t4.userid = t5.userid) AND (t0.CUSTOMER_ID = t3.id) AND (t2.id = t4.ADD_ID) ))&amp;quot;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t1.id, t1.accountNum, t6.id, t6.city, t6.country, t6.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t6.state, t6.street, t7.userid, t7.DTYPE, t7.age, t7.compName, t7.creditRating, t7.name, t6.zipCode, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.balanceOwed, t1.creditRating, t1.filledOrderCount, t1.firstName, t1.lastName, t1.name, t1.status, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t2 ON t1.ADDRESS_ID = t2.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t6 ON t1.ADDRESS_ID = t6.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t7 ON t6.id = t7.ADD_ID WHERE (? &amp;lt; ALL (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t5.age FROM &amp;nbsp;CR_CUST t3, &amp;nbsp;CompUser t4, CompUser t5 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t4.userid = t5.userid) AND (t0.CUSTOMER_ID = t3.id) AND (t2.id = t4.ADD_ID) ))&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;void execute(String jpql, String expectedSQL) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testExist1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT DISTINCT c.name FROM CompUser c WHERE EXISTS&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (SELECT a FROM Address a WHERE a = c.address )&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT DISTINCT t1.name FROM CompUser t1 WHERE (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t0.id FROM CR_ADDR t0 WHERE (t0.id = t1.ADD_ID) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testExist1a() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT DISTINCT o.name FROM CompUser o WHERE EXISTS&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (SELECT s FROM CompUser s WHERE s.address.country = &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;o.address.country)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT DISTINCT t2.name &amp;quot; + &amp;quot;FROM CompUser t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t3 ON t2.ADD_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (EXISTS (&amp;quot; + &amp;quot;SELECT t0.userid &amp;quot; + &amp;quot;FROM CompUser t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t1 ON t0.ADD_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t1.country = t3.country) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testExist1b() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c from Customer c left join c.orders o where exists&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select o2 from c.orders o2 where o2 = o)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.zipCode, t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.name, t0.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t2 ON t0.id = t2.CUSTOMER_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t0.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE (t2.id = t4.id AND t3.id = t4.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testNotExist1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT DISTINCT c.name FROM CompUser c WHERE NOT EXISTS&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (SELECT a FROM Address a WHERE a = c.address )&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT DISTINCT t1.name FROM CompUser t1 WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t0.id FROM CR_ADDR t0 WHERE (t0.id = t1.ADD_ID) )))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testNotExist1a() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c from Customer c left join c.orders o where not exists&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select o2 from c.orders o2 where o2 = o)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t5.id, t5.city, t5.country, t5.county, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.state, t5.street, t6.userid, t6.DTYPE, t6.age, t6.compName, t6.creditRating, t6.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t5.zipCode, t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t0.name, t0.status &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ODR t2 ON t0.id = t2.CUSTOMER_ID &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t5 ON t0.ADDRESS_ID = t5.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t6 ON t5.id = t6.ADD_ID WHERE (NOT (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 WHERE (t2.id = t4.id AND t3.id = t4.id) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND (t0.id = t3.CUSTOMER_ID) )))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testAny() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT o.name FROM CompUser o &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE o.address.zipCode = &amp;quot; + &amp;quot; ANY (SELECT s.computerName &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; FROM CompUser s WHERE s.address.country IS NOT NULL)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CompUser t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t1 ON t0.ADD_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t1.zipCode = ANY (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.compName &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CompUser t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ADDR t3 ON t2.ADD_ID = t3.id WHERE (t3.country IS NOT NULL) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// redundant t1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery01() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o1.id from Order o1 where o1.id in &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select distinct o.id from LineItem i, Order o&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where i.quantity &amp;gt; 10 and o.count &amp;gt; 1000 and i.id = o.id)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.id IN (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT DISTINCT t2.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.quantity &amp;gt; ? AND t2.count &amp;gt; ? AND t3.id = t2.id) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery02() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.customer.balanceOwed =&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select max(o2.customer.balanceOwed) from Order o2&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o.customer.id = o2.customer.id)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id WHERE (t1.balanceOwed = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t3.balanceOwed) FROM CR_ODR t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id WHERE (t0.CUSTOMER_ID = t2.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery03() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o from Order o where o.customer.balanceOwed =&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select max(o2.customer.balanceOwed) from Order o2&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o.customer.id = o2.customer.id)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t1.id, t1.accountNum, t4.id, t4.city, t4.country, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.county, t4.state, t4.street, t5.userid, t5.DTYPE, t5.age, t5.compName, t5.creditRating, t5.name, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.zipCode, t1.balanceOwed, t1.creditRating, t1.filledOrderCount, t1.firstName, t1.lastName, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.name, t1.status, t0.delivered, t0.name, t0.orderTs, t0.quantity, t0.totalCost &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CR_ADDR t4 ON t1.ADDRESS_ID = t4.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN CompUser t5 ON t4.id = t5.ADD_ID WHERE (t1.balanceOwed = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t3.balanceOwed) FROM CR_ODR t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id WHERE (t0.CUSTOMER_ID = t2.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery04() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select count(i) from o.lineItems i)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT COUNT(t2.id) FROM &amp;nbsp;CR_LI t1, CR_LI t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t1.id = t2.id) AND (t0.id = t1.ORDER_ID) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery05() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select count(o.quantity) from Order o)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT COUNT(t1.quantity) FROM CR_ODR t1 ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery06() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select count(o.id) from Order o)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT COUNT(t1.id) FROM CR_ODR t1 ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery07() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select avg(o.quantity) from Order o)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT AVG(t1.quantity) FROM CR_ODR t1 ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery08() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c.name from Customer c &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;where exists (select o from c.orders o where o.id = 1) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;or exists (select o from c.orders o where o.id = 2)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name FROM CR_CUST t0 WHERE (EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t2.id FROM &amp;nbsp;CR_ODR t1, CR_ODR t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t2.id = ? AND t1.id = t2.id) AND (t0.id = t1.CUSTOMER_ID) ) OR EXISTS (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.id FROM &amp;nbsp;CR_ODR t3, CR_ODR t4 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t4.id = ? AND t3.id = t4.id) AND (t0.id = t3.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery09() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c.name from Customer c, in(c.orders) o &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;where o.quantity between &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(select max(o.quantity) from Order o) and &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(select avg(o.quantity) from Order o) &amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.name &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;gt;= (SELECT MAX(t2.quantity) FROM CR_ODR t2 ) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t1.quantity &amp;lt;= (SELECT AVG(t3.quantity) FROM CR_ODR t3 ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery10() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select sum(o2.quantity) from Customer c, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;in(c.orders) o2) &amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id FROM CR_ODR t2 WHERE (t2.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT SUM(t1.quantity) FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery11() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity between&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select avg(o2.quantity) from Customer c, in(c.orders) o2)&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; and (select min(o2.quantity) from Customer c, in(c.orders)&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; o2)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t4.id FROM CR_ODR t4 WHERE (t4.quantity &amp;gt;= (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT AVG(t1.quantity) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t0 INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID ) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t4.quantity &amp;lt;= (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MIN(t3.quantity) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_CUST t2 INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery12() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Customer c, in(c.orders)o &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;where o.quantity &amp;gt; (select sum(o2.quantity)&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; from c.orders o2)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t1.id FROM CR_CUST t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ODR t1 ON t0.id = t1.CUSTOMER_ID WHERE (t1.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT SUM(t3.quantity) FROM &amp;nbsp;CR_ODR t2, CR_ODR t3 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t2.id = t3.id) AND (t0.id = t2.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// a correated JPQL generates non correlated SQL
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery13() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o1.id, c.name from Order o1, Customer c&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o1.quantity = &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; any(select o2.quantity from in(c.orders) o2)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t1.name &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 JOIN CR_CUST t1 ON (1 = 1) WHERE (t0.quantity = ANY (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT t4.quantity &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 JOIN CR_CUST t2 ON (1 = 1) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_ODR t3 ON t2.id = t3.CUSTOMER_ID, CR_ODR t4 WHERE (t3.id = t4.id) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery14() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT p, m FROM Publisher p &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;LEFT OUTER JOIN p.magazineCollection m &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE m.id = (SELECT MAX(m2.id) FROM Magazine m2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE m2.idPublisher.id = p.id AND m2.id = &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(SELECT MAX(m3.id) FROM Magazine m3 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE m3.idPublisher.id = p.id)) &amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t1.id, t1.date_published, t1.id_publisher, t1.name &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM Publisher t0 LEFT OUTER JOIN Magazine t1 ON t0.id = t1.id_publisher WHERE (t1.id = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT MAX(t2.id) FROM Magazine t2 WHERE (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id_publisher = t0.id AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t2.id = (SELECT MAX(t3.id) FROM Magazine t3 WHERE (t3.id_publisher = t0.id) )) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery15() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.delivered =(select &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; CASE WHEN o2.quantity &amp;gt; 10 THEN true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; WHEN o2.quantity = 10 THEN false &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; ELSE false END from Order o2&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o.customer.id = o2.customer.id)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.delivered = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT &amp;nbsp;CASE &amp;nbsp;WHEN t1.quantity &amp;gt; ? THEN 1 WHEN t1.quantity = ? THEN 0 ELSE 0 END &amp;nbsp;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t1 WHERE (t0.CUSTOMER_ID = t1.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery16() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o1.id from Order o1 where o1.quantity &amp;gt; &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select o.quantity*2 from LineItem i, Order o&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where i.quantity &amp;gt; 10 and o.quantity &amp;gt; 1000 and i.id = &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;o.id)&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT (t2.quantity * ?) FROM CR_ODR t1 JOIN CR_ODR t2 ON (1 = 1), CR_LI t3 WHERE (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;t3.quantity &amp;gt; ? AND t2.quantity &amp;gt; ? AND t3.id = t2.id) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery17() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.customer.name =&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select substring(o2.customer.name, 3) from Order o2&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o.customer.id = o2.customer.id)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id WHERE (t1.name = (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT SUBSTR(CAST((t3.name) AS VARCHAR(1000)), 3) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t2 INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE (t0.CUSTOMER_ID = t2.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery18() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.orderTs &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select CURRENT_TIMESTAMP from o.lineItems i)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.orderTs &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT CURRENT_TIMESTAMP FROM &amp;nbsp;CR_LI t1, CR_LI t2 WHERE (t1.id = t2.id) AND &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;(t0.id = t1.ORDER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery19() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.quantity &amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select SQRT(o.quantity) from Order o where o.delivered&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; = true)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id FROM CR_ODR t0 WHERE (t0.quantity &amp;gt; (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT SQRT(t1.quantity) FROM CR_ODR t1 WHERE (t1.delivered = ?) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery20() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o.id from Order o where o.customer.name in&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select CONCAT(o.customer.name, 'XX') from Order o&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; where o.quantity &amp;gt; 10)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t2.id FROM CR_ODR t2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id WHERE (t3.name IN (&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;SELECT (CAST(t1.name AS VARCHAR(1000)) || CAST(? AS VARCHAR(1000))) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;FROM CR_ODR t0 INNER JOIN CR_CUST t1 ON t0.CUSTOMER_ID = t1.id WHERE (t0.quantity &amp;gt; ?) ))&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery21() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c from Customer c where c.creditRating =&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; (select &amp;quot; + &amp;quot; &amp;nbsp; CASE WHEN o2.quantity &amp;gt; 10 THEN &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;criteria1.Customer$CreditRating.POOR &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHEN o2.quantity = 10 THEN &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;criteria1.Customer$CreditRating.GOOD &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ELSE &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;criteria1.Customer$CreditRating.EXCELLENT &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END &amp;quot; + &amp;quot; &amp;nbsp; from Order o2 &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; &amp;nbsp; where c.id = o2.customer.id)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot; +
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, t0.name, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.status &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t0.creditRating = (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT &amp;nbsp;CASE &amp;nbsp;WHEN t1.quantity &amp;gt; ? THEN 0 WHEN t1.quantity = ? THEN 1 ELSE 2 END &amp;nbsp;&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t1 WHERE (t0.id = t1.CUSTOMER_ID) ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//enum literal should be integer, not string
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void atestSubquery22() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c from Customer c &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;where c.creditRating = (select COALESCE (c1.creditRating, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;criteria1.Customer$CreditRating.POOR) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;from Customer c1 where c1.name = 'Famzy') order by c.name &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;DESC&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t2.id, t2.city, t2.country, t2.county, t2.state, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, t2.zipCode, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, t0.name, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.status &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID WHERE (t0.creditRating = (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT &amp;nbsp;COALESCE(t1.creditRating,'POOR') FROM CR_CUST t1 WHERE (t1.name = ?) )) &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ORDER BY t0.name DESC&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery23() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select c from Customer c &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;where c.creditRating = (select NULLIF (c1.creditRating, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;org.apache.openjpa.persistence.criteria.&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;Customer$CreditRating.POOR) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;from Customer c1 where c1.name = 'Famzy') &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;order by c.name DESC&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.accountNum, t2.id, t2.city, t2.country, t2.county, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.state, t2.street, t3.userid, t3.DTYPE, t3.age, t3.compName, t3.creditRating, t3.name, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.zipCode, t0.balanceOwed, t0.creditRating, t0.filledOrderCount, t0.firstName, t0.lastName, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.name, t0.status &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_CUST t0 &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t2 ON t0.ADDRESS_ID = t2.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t3 ON t2.id = t3.ADD_ID WHERE (t0.creditRating = (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT &amp;nbsp;NULLIF(t1.creditRating,0) FROM CR_CUST t1 WHERE (t1.name = ?) )) &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ORDER BY t0.name DESC&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery24() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o from Order o where o.count &amp;gt; (select count(o) from Order o)&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t2.id, t2.accountNum, t3.id, t3.city, t3.country, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.county, t3.state, t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.name, t3.zipCode, t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.lastName, t2.name, t2.status, t0.delivered, t0.name, t0.orderTs, t0.quantity, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.totalCost &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t2 ON t0.CUSTOMER_ID = t2.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID WHERE (t0.count &amp;gt; (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT COUNT(t1.id) FROM CR_ODR t1 ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSubquery25() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;select o from Order o where o.count &amp;gt; (select count(o2) from Order o2)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.id, t0.count, t2.id, t2.accountNum, t3.id, t3.city, t3.country, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t3.county, t3.state, t3.street, t4.userid, t4.DTYPE, t4.age, t4.compName, t4.creditRating, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t4.name, t3.zipCode, t2.balanceOwed, t2.creditRating, t2.filledOrderCount, t2.firstName, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t2.lastName, t2.name, t2.status, t0.delivered, t0.name, t0.orderTs, t0.quantity, &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;t0.totalCost &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_ODR t0 &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_CUST t2 ON t0.CUSTOMER_ID = t2.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CR_ADDR t3 ON t2.ADDRESS_ID = t3.id &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;LEFT OUTER JOIN CompUser t4 ON t3.id = t4.ADD_ID WHERE (t0.count &amp;gt; (&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SELECT COUNT(t1.id) FROM CR_ODR t1 ))&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;execute(jpql, expectedSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * this test scenario must use Dependent.java and DependentId.java in
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * org.apache.openjpa.persistence.query package.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void atestSubSelectMaxDateRange() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpql = &amp;quot;SELECT e,d from Employee e, Dependent d &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;WHERE e.empId = :empid &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND d.id.empid = (SELECT MAX (e2.empId) FROM Employee e2) &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND d.id.effDate &amp;gt; :minDate &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;AND d.id.effDate &amp;lt; :maxDate &amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expectedSQL = &amp;quot;SELECT t0.empId, t1.effDate, t1.empid, t1.name &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;FROM CR_EMP t0 JOIN SUBQ_DEPENDENT t1 ON (1 = 1) &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;WHERE (t0.empId = ? &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;AND t1.empid = (SELECT MAX(t2.empId) FROM CR_EMP t2 ) &amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;AND t1.effDate &amp;gt; ? AND t1.effDate &amp;lt; ?)&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sql.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Query jQ = em.createQuery(jpql);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jQ.setParameter(&amp;quot;empid&amp;quot;, (long) 101);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jQ.setParameter(&amp;quot;minDate&amp;quot;, new Date(100));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jQ.setParameter(&amp;quot;maxDate&amp;quot;, new Date(100000));
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List jList = jQ.getResultList();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (PersistenceException e) {
&lt;br&gt;@@ -356,7 +814,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.printStackTrace();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Wrong JPQL :&amp;quot; + jpql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; sql.size(); i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jSQL = sql.get(i).trim();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;jSQL = &amp;quot; + sql.get(i));
&lt;br&gt;@@ -366,5 +824,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void execute(String jpql, String expectedSQL) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sql.clear();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Query jQ = em.createQuery(jpql);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List jList = jQ.getResultList();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (PersistenceException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.printStackTrace();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Wrong SQL for JPQL :&amp;quot; + jpql + &amp;quot;\r\nSQL &amp;nbsp;:&amp;quot; + sql.get(0));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.printStackTrace();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Wrong JPQL :&amp;quot; + jpql);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; sql.size(); i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jSQL = sql.get(i).trim();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;jSQL = &amp;quot; + sql.get(i));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (expectedSQL != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(expectedSQL, jSQL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790761----openjpa-branches-subquery-openjpa-persistence-jdbc-src-test-java-org-apache-openjpa-persistence-criteria-TestJPQLSubquery.java-tp3198422p3198422.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3198080</id>
	<title>svn commit: r790748 - in /openjpa/branches/subquery: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/ openjpa-persistenc...</title>
	<published>2009-07-02T15:09:53Z</published>
	<updated>2009-07-02T15:09:53Z</updated>
	<author>
		<name>faywang</name>
	</author>
	<content type="html">Author: faywang
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 22:09:52 2009
&lt;br&gt;New Revision: 790748
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790748&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790748&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;fix exists/not exists problem
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/SubQ.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestSubquery.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.java Thu Jul &amp;nbsp;2 22:09:52 2009
&lt;br&gt;@@ -166,8 +166,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new OrExpression((Exp) exp1, (Exp) exp2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Expression not(Expression exp) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (HasContainsExpressionVisitor.hasContains(exp))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Expression not(Expression exp) {// fyw
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(exp instanceof IsNotEmptyExpression) &amp;&amp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HasContainsExpressionVisitor.hasContains(exp))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new NotContainsExpression((Exp) exp);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new NotExpression((Exp) exp);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/SubQ.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/SubQ.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/SubQ.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/SubQ.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/SubQ.java Thu Jul &amp;nbsp;2 22:09:52 2009
&lt;br&gt;@@ -45,7 +45,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final ClassMapping _candidate;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final boolean _subs;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private final String _alias;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private final String _subqAlias;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final SelectConstructor _cons = new SelectConstructor();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Class _type = null;
&lt;br&gt;@@ -60,7 +60,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public SubQ(ClassMapping candidate, boolean subs, String alias) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_candidate = candidate;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_subs = subs;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_alias = alias;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_subqAlias = alias;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_select = (((JDBCConfiguration) candidate.getMappingRepository().
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getConfiguration()).getSQLFactoryInstance().newSelect());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_cons.setSubselect(_select);
&lt;br&gt;@@ -102,7 +102,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public String getCandidateAlias() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _alias;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _subqAlias;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setQueryExpressions(QueryExpressions query) {
&lt;br&gt;@@ -192,7 +192,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void appendTo(Select sel, ExpContext ctx, ExpState state, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SQLBuffer sql, int index, boolean size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QueryExpressionsState substate = new QueryExpressionsState();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Select sub = _cons.evaluate(ctx, sel, _alias, _exps, substate);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Select sub = _cons.evaluate(ctx, sel, _subqAlias, _exps, substate);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_cons.select(sub, ctx, _candidate, _subs, _exps, substate, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JDBCFetchConfiguration.EAGER_NONE);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java Thu Jul &amp;nbsp;2 22:09:52 2009
&lt;br&gt;@@ -2023,22 +2023,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean create) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer i = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SelectImpl sel = this;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//currCtx is set from Action, it is reset to null after the PCPath initialization
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context currCtx = pj == null ? null : ((PathJoinsImpl)pj).context;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// lastCtx is set to currCtx after the SelectJoins.join. pj.lastCtx and pj.path string are 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// the last snapshot of pj. They will be used together for later table alias resolution in
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// the getColumnAlias(). 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context lastCtx = pj == null ? null : ((PathJoinsImpl)pj).lastContext;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context thisCtx = currCtx == null ? lastCtx : currCtx;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String corrVar = pj == null ? null : pj.getCorrelatedVariable();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String alias = _schemaAlias;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((pj != null &amp;&amp; pj.path() != null &amp;&amp; (corrVar == null || ctx() == thisCtx)) || 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;table.isAssociation()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isPathInThisContext(pj) || table.isAssociation()) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;alias = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// find the context where this alias is defined
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context ctx = (alias != null) ?
&lt;br&gt;@@ -2062,6 +2049,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return i;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean isPathInThisContext(PathJoins pj) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// currCtx is set from Action, it is reset to null after the PCPath initialization
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context currCtx = pj == null ? null : ((PathJoinsImpl)pj).context;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// lastCtx is set to currCtx after the SelectJoins.join. pj.lastCtx and pj.path string are 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// the last snapshot of pj. They will be used together for later table alias resolution in
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// the getColumnAlias(). 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context lastCtx = pj == null ? null : ((PathJoinsImpl)pj).lastContext;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context thisCtx = currCtx == null ? lastCtx : currCtx;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String corrVar = pj == null ? null : pj.getCorrelatedVariable();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (pj != null &amp;&amp; pj.path() != null &amp;&amp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(corrVar == null || (thisCtx != null &amp;&amp; ctx() == thisCtx)));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Integer getAlias(Table table, Object key) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer alias = null;
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.java Thu Jul &amp;nbsp;2 22:09:52 2009
&lt;br&gt;@@ -601,11 +601,12 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCandidate(candidate, alias);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subquery subquery =
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;factory.newSubquery(candidate, true, alias);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Context subContext = ctx();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subContext.setSubquery(subquery);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subquery subquery = ctx().getSubquery();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (subquery == null){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subquery = factory.newSubquery(candidate, true, alias);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subContext.setSubquery(subquery);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Path subpath = factory.newPath(subquery);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subpath.setMetaData(candidate);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subquery.setMetaData(candidate);
&lt;br&gt;@@ -635,14 +636,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// OPENJPA-15 support subquery's from clause do not start with 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// identification_variable_declaration()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (inner &amp;&amp; ctx().getParent() != null &amp;&amp; ctx().schemaAlias == null) {
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassMetaData candidate = getFieldType(path.last());
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCandidate(candidate, alias.text);
&lt;br&gt;-//
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx().subquery = factory.newSubquery(candidate, true, alias.text);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Path subpath = factory.newPath(ctx().subquery);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subpath.setMetaData(candidate);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exp = bindVariableForSubPath(path, alias.text, exp);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exp = &amp;nbsp;and(exp, factory.equal(path, subpath));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getSubquery(alias.text, path, exp);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -704,18 +697,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// clause, since we might be in a subquery against a collection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isPath(left)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Path path = getPath(left);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FieldMetaData fmd = path.last();
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassMetaData candidate = getFieldType(fmd);
&lt;br&gt;-//
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (candidate == null &amp;&amp; fmd.isElementCollection())
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;candidate = fmd.getDefiningMetaData();
&lt;br&gt;-//
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCandidate(candidate, alias);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exp = bindVariableForSubPath(path, alias, exp);
&lt;br&gt;-//
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Path subpath = factory.newPath(ctx().subquery);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subpath.setMetaData(ctx().subquery.getMetaData());
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return and(exp, factory.equal(path, subpath));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getSubquery(alias, path, exp);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we have an alias: bind it as a variable
&lt;br&gt;&lt;br&gt;Modified: openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestSubquery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestSubquery.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestSubquery.java?rev=790748&amp;r1=790747&amp;r2=790748&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestSubquery.java (original)
&lt;br&gt;+++ openjpa/branches/subquery/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestSubquery.java Thu Jul &amp;nbsp;2 22:09:52 2009
&lt;br&gt;@@ -94,9 +94,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; (select count(o) from Order o)&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;select o from Order o where o.amount &amp;gt; &amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;(select count(o2) from Order o2)&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// outstanding problem subqueries:
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// &amp;nbsp;&amp;quot;select c from Customer c left join c.orders o where not exists&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// &amp;nbsp; &amp;nbsp;+ &amp;quot; (select o2 from c.orders o2 where o2 = o)&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;select c from Customer c left join c.orders o where not exists&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &amp;quot; (select o2 from c.orders o2 where o2 = o)&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;static String[] &amp;nbsp;querys_jpa20 = new String[] { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790748---in--openjpa-branches-subquery%3A-openjpa-jdbc-src-main-java-org-apache-openjpa-jdbc-kernel-exps--openjpa-jdbc-src-main-java-org-apache-openjpa-jdbc-sql--openjpa-kernel-src-main-tp3198080p3198080.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197384</id>
	<title>svn commit: r790722 - in /openjpa/trunk/openjpa-integration/validation: ./ src/test/java/org/apache/openjpa/integration/validation/</title>
	<published>2009-07-02T12:44:18Z</published>
	<updated>2009-07-02T12:44:18Z</updated>
	<author>
		<name>DWoods</name>
	</author>
	<content type="html">Author: dwoods
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 19:44:18 2009
&lt;br&gt;New Revision: 790722
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790722&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790722&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;OPENJPA-1106 Add tests for DecimalMin/Max constraints. &amp;nbsp;Upgrade to agimatec 0.9.1-SNAPSHOT which has been updated to the 1.0.CR1 API level and now includes support for DecimalMin/Max constraints.
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-integration/validation/pom.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintBoolean.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-integration/validation/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/pom.xml?rev=790722&amp;r1=790721&amp;r2=790722&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/pom.xml?rev=790722&amp;r1=790721&amp;r2=790722&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-integration/validation/pom.xml (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-integration/validation/pom.xml Thu Jul &amp;nbsp;2 19:44:18 2009
&lt;br&gt;@@ -67,7 +67,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;javax.validation&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;validation-api&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;1.0.Beta4&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;1.0.CR1&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt;
&lt;br&gt;@@ -79,13 +79,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;com.agimatec&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;agimatec-jsr303&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;0.9.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;0.9.1-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;com.agimatec&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;agimatec-validation&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;0.9.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;0.9.1-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintBoolean.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintBoolean.java?rev=790722&amp;r1=790721&amp;r2=790722&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintBoolean.java?rev=790722&amp;r1=790721&amp;r2=790722&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintBoolean.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintBoolean.java Thu Jul &amp;nbsp;2 19:44:18 2009
&lt;br&gt;@@ -23,11 +23,19 @@
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&amp;nbsp;import javax.persistence.GeneratedValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Id;
&lt;br&gt;+import javax.persistence.NamedQueries;
&lt;br&gt;+import javax.persistence.NamedQuery;
&lt;br&gt;&amp;nbsp;import javax.persistence.Table;
&lt;br&gt;&amp;nbsp;import javax.persistence.Transient;
&lt;br&gt;&amp;nbsp;import javax.validation.constraints.AssertFalse;
&lt;br&gt;&amp;nbsp;import javax.validation.constraints.AssertTrue;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+@NamedQueries( {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@NamedQuery(name=&amp;quot;FindFirst&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;query=&amp;quot;select c from VBOOLEAN c where c.id = 1&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@NamedQuery(name=&amp;quot;FindAll&amp;quot;, query=&amp;quot;select c from VBOOLEAN c&amp;quot;)
&lt;br&gt;+})
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;@Entity(name = &amp;quot;VBOOLEAN&amp;quot;)
&lt;br&gt;&amp;nbsp;@Table(name = &amp;quot;BOOLEAN_ENTITY&amp;quot;)
&lt;br&gt;&amp;nbsp;public class ConstraintBoolean implements Serializable {
&lt;br&gt;&lt;br&gt;Added: openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java?rev=790722&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java?rev=790722&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java (added)
&lt;br&gt;+++ openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java Thu Jul &amp;nbsp;2 19:44:18 2009
&lt;br&gt;@@ -0,0 +1,129 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. &amp;nbsp;See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. &amp;nbsp;The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. &amp;nbsp;See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License. &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.openjpa.integration.validation;
&lt;br&gt;+
&lt;br&gt;+import java.io.Serializable;
&lt;br&gt;+//import java.math.BigDecimal;
&lt;br&gt;+
&lt;br&gt;+import javax.persistence.Basic;
&lt;br&gt;+import javax.persistence.Entity;
&lt;br&gt;+import javax.persistence.GeneratedValue;
&lt;br&gt;+import javax.persistence.Id;
&lt;br&gt;+import javax.persistence.NamedQueries;
&lt;br&gt;+import javax.persistence.NamedQuery;
&lt;br&gt;+import javax.persistence.Table;
&lt;br&gt;+import javax.persistence.Transient;
&lt;br&gt;+import javax.validation.constraints.DecimalMax;
&lt;br&gt;+import javax.validation.constraints.DecimalMin;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+@NamedQueries( {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@NamedQuery(name=&amp;quot;FindFirst&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;query=&amp;quot;select c from VDECIMAL c where c.id = 1&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@NamedQuery(name=&amp;quot;FindAll&amp;quot;, query=&amp;quot;select c from VDECIMAL c&amp;quot;)
&lt;br&gt;+})
&lt;br&gt;+
&lt;br&gt;+@Entity(name = &amp;quot;VDECIMAL&amp;quot;)
&lt;br&gt;+@Table(name = &amp;quot;DECIMAL_ENTITY&amp;quot;)
&lt;br&gt;+public class ConstraintDecimal implements Serializable {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Transient
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 1L;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Transient
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//private static final BigDecimal negative = new BigDecimal(-99);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final long negative = -99;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Transient
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//private static final BigDecimal positive = new BigDecimal(99);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final long positive = 99;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Id
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@GeneratedValue
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private long id;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Basic
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@DecimalMin(value = &amp;quot;0&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//private BigDecimal minZero;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private long minZero;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Basic
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@DecimalMax(value = &amp;quot;0&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//private BigDecimal maxZero;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private long maxZero;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Some helper methods to create the entities to test with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static ConstraintDecimal createInvalidMin() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = new ConstraintDecimal();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMinZero(negative);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMaxZero(negative);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static ConstraintDecimal createInvalidMax() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = new ConstraintDecimal();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMinZero(positive);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMaxZero(positive);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static ConstraintDecimal createInvalidMinMax() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = new ConstraintDecimal();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMinZero(negative);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMaxZero(positive);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static ConstraintDecimal createValid() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = new ConstraintDecimal();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMinZero(positive);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.setMaxZero(negative);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Main entity code
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ConstraintDecimal() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public long getId() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return id;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public long getMinZero() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return minZero;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMinZero(long d) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;minZero = d;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public long getMaxZero() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return maxZero;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMaxZero(long d) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;maxZero = d;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ConstraintDecimal.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java?rev=790722&amp;r1=790721&amp;r2=790722&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java?rev=790722&amp;r1=790721&amp;r2=790722&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java Thu Jul &amp;nbsp;2 19:44:18 2009
&lt;br&gt;@@ -29,22 +29,25 @@
&lt;br&gt;&amp;nbsp; * focusing on the following Validation scenarios:
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; * &amp;nbsp; Check special update/delete/ignore cases once:
&lt;br&gt;- * &amp;nbsp; 1) Update @Null constraint exception on variables in mode=AUTO
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp;Tests that a constraint violation will occur on invalid update.
&lt;br&gt;- * &amp;nbsp; 2) No invalid Delete @Null constraint exception when mode=AUTO
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp;Tests that a violation will not occur when deleting invalid entity.
&lt;br&gt;- * &amp;nbsp; 3) No invalid Persist constraint exception when mode=NONE
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp;Tests that no Validation Providers are used when disabled.
&lt;br&gt;+ * &amp;nbsp; 1) &amp;nbsp;Update @Null constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; Tests that a constraint violation will occur on invalid update.
&lt;br&gt;+ * &amp;nbsp; 2) &amp;nbsp;No invalid Delete @Null constraint exception when mode=AUTO
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; Tests that a violation will not occur when deleting invalid entity.
&lt;br&gt;+ * &amp;nbsp; 3) &amp;nbsp;No invalid Persist constraint exception when mode=NONE
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; Tests that no Validation Providers are used when disabled.
&lt;br&gt;&amp;nbsp; * &amp;nbsp; 
&lt;br&gt;&amp;nbsp; * &amp;nbsp; Basic constraint tests for violation exceptions:
&lt;br&gt;- * &amp;nbsp; 4) Persist @Null constraint exception on variables in mode=AUTO
&lt;br&gt;- * &amp;nbsp; 5) Persist @NotNull constraint exception on variables in mode=AUTO
&lt;br&gt;- * &amp;nbsp; 7) Test @AssertTrue constraint exception on variables in mode=AUTO
&lt;br&gt;- * &amp;nbsp; 8) Test @AssertFalse constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 4) &amp;nbsp;Persist @Null constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 5) &amp;nbsp;Persist @NotNull constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 7) &amp;nbsp;Test @AssertTrue constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 8) &amp;nbsp;Test @AssertFalse constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 10) Test @DecimalMin constraint exception on variables in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 11) Test @DecimalMax constraint exception on variables in mode=AUTO
&lt;br&gt;&amp;nbsp; * &amp;nbsp; 
&lt;br&gt;&amp;nbsp; * &amp;nbsp; Basic constraint test for no violations:
&lt;br&gt;- * &amp;nbsp; 6) Persist @NotNull and @Null constraints pass in mode=AUTO
&lt;br&gt;- * &amp;nbsp; 9) Test @AssertFalse and @AssertTrue constraints pass in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 6) &amp;nbsp;Persist @NotNull and @Null constraints pass in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 9) &amp;nbsp;Test @AssertFalse and @AssertTrue constraints pass in mode=AUTO
&lt;br&gt;+ * &amp;nbsp; 12) Test @DecimalMin and @DecimalMax constraints pass in mode=AUTO
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * @version $Rev$ $Date$
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -53,7 +56,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setUp() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.setUp(CLEAR_TABLES,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintNull.class, ConstraintBoolean.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintNull.class, ConstraintBoolean.class,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -86,6 +90,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Caught unexpected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -152,6 +158,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Unexpected Validation exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((emf != null) &amp;&amp; emf.isOpen()) {
&lt;br&gt;@@ -230,6 +238,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Unexpected Validation exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((emf != null) &amp;&amp; emf.isOpen()) {
&lt;br&gt;@@ -267,6 +277,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullConstraint() passed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -301,6 +313,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNotNullConstraint() passed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -330,9 +344,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullNotNullConstraint() passed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// unexpected
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullNotNullConstraint() failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Caught unexpected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -367,6 +384,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertTrueConstraint() passed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -401,6 +420,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertFalseConstraint() passed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -430,9 +451,119 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertTrueFalseConstraint() passed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// unexpected
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertTrueFalseConstraint() failed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Caught unexpected exception = &amp;quot; + e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Scenario being tested:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; 10) Test @DecimalMin constraint exception on variables in mode=AUTO
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; Basic constraint test for a violation exception.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testDecimalMinConstraint() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMinConstraint() started&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// create EM from default EMF
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenJPAEntityManager em = emf.createEntityManager();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(em);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// verify Validation Mode
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenJPAConfiguration conf = em.getConfiguration();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(conf);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;ValidationMode&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.getValidationMode().equalsIgnoreCase(&amp;quot;AUTO&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// create invalid ConstraintBoolean instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().begin();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = ConstraintDecimal.createInvalidMin();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.persist(c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMinConstraint() failed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMinConstraint() passed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Scenario being tested:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; 11) Test @DecimalMax constraint exception on variables in mode=AUTO
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; Basic constraint test for a violation exception.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testDecimalMaxConstraint() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMaxConstraint() started&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// create EM from default EMF
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenJPAEntityManager em = emf.createEntityManager();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(em);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// verify Validation Mode
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenJPAConfiguration conf = em.getConfiguration();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(conf);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;ValidationMode&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.getValidationMode().equalsIgnoreCase(&amp;quot;AUTO&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// create invalid ConstraintBoolean instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().begin();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = ConstraintDecimal.createInvalidMax();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.persist(c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMaxConstraint() failed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMaxConstraint() passed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Scenario being tested:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; 12) Test @DecimalMin and @DecimalMax constraints pass in mode=AUTO
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; Basic constraint test for no violations.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testDecimalMinMaxConstraint() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMinMaxConstraint() started&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// create EM from default EMF
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenJPAEntityManager em = emf.createEntityManager();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(em);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// verify Validation Mode
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenJPAConfiguration conf = em.getConfiguration();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(conf);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;ValidationMode&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.getValidationMode().equalsIgnoreCase(&amp;quot;AUTO&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// create valid ConstraintBoolean instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().begin();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstraintDecimal c = ConstraintDecimal.createValid();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.persist(c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMinMaxConstraint() passed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// unexpected
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testDecimalMinMaxConstraint() failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Caught unexpected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (em.getTransaction().isActive())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790722---in--openjpa-trunk-openjpa-integration-validation%3A-.--src-test-java-org-apache-openjpa-integration-validation--tp3197384p3197384.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197364</id>
	<title>svn propchange: r740763 - svn:log</title>
	<published>2009-07-02T12:39:45Z</published>
	<updated>2009-07-02T12:39:45Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 740763
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:39:45 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:39:45 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-772 committing patch provided by Donald Woods
&lt;br&gt;+OPENJPA-772:
&lt;br&gt;+Use ianal plugin to handle legal resources and better plugin management in pom.xml
&lt;br&gt;+Submitted by :Donald Woods
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r740763---svn%3Alog-tp3197364p3197364.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197355</id>
	<title>svn propchange: r742775 - svn:log</title>
	<published>2009-07-02T12:38:23Z</published>
	<updated>2009-07-02T12:38:23Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 742775
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:38:23 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:38:23 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-876 committing patch provided by Donald Woods
&lt;br&gt;+OPENJPA-876
&lt;br&gt;+Improve DB2 and Oracle test profiles. 
&lt;br&gt;+Submitted By : &amp;nbsp;Donald Woods
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r742775---svn%3Alog-tp3197355p3197355.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197347</id>
	<title>svn propchange: r748576 - svn:log</title>
	<published>2009-07-02T12:37:08Z</published>
	<updated>2009-07-02T12:37:08Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 748576
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:37:08 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:37:08 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-901 committing patch provided by Donald Woods.
&lt;br&gt;+OPENJPA-901:
&lt;br&gt;+Use hosted version of JAI artifacts instead of manually installing to local repository.
&lt;br&gt;+Submitted by :Donald Woods.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r748576---svn%3Alog-tp3197347p3197347.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197331</id>
	<title>svn propchange: r755396 - svn:log</title>
	<published>2009-07-02T12:34:50Z</published>
	<updated>2009-07-02T12:34:50Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 755396
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:34:50 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:34:50 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-970. Committing patch provided by Donald Woods
&lt;br&gt;+OPENJPA-970:
&lt;br&gt;+SchemaTool supports dropTables
&lt;br&gt;+Submitted by:Donald Woods
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r755396---svn%3Alog-tp3197331p3197331.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197322</id>
	<title>svn propchange: r760914 - svn:log</title>
	<published>2009-07-02T12:33:47Z</published>
	<updated>2009-07-02T12:33:47Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 760914
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:33:47 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:33:47 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-975 committing patch from B.J. Reed
&lt;br&gt;+OPENJPA-975:
&lt;br&gt;+Omit escape ('\') for Oracle
&lt;br&gt;+Submitted by: B.J. Reed
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r760914---svn%3Alog-tp3197322p3197322.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197320</id>
	<title>svn propchange: r761509 - svn:log</title>
	<published>2009-07-02T12:32:41Z</published>
	<updated>2009-07-02T12:32:41Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 761509
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:32:41 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:32:41 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1015 fix line wrapping in source files. Based on patch contributed by B.J. Reed. Updates made to do enforce line wrapping during the process-sources phase of the build.
&lt;br&gt;+OPENJPA-1015:
&lt;br&gt;+Enforce 80 character column width for source files.
&lt;br&gt;+Submitted by: B.J. Reed.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r761509---svn%3Alog-tp3197320p3197320.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197307</id>
	<title>svn propchange: r761699 - svn:log</title>
	<published>2009-07-02T12:31:37Z</published>
	<updated>2009-07-02T12:31:37Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 761699
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:31:37 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:31:37 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1015. Committing auditing patch from Donald Woods
&lt;br&gt;+OPENJPA-1015:
&lt;br&gt;+Show console ouput for files which fail checkstyle check
&lt;br&gt;+Submitted by: Donald Woods
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r761699---svn%3Alog-tp3197307p3197307.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197299</id>
	<title>svn propchange: r762774 - svn:log</title>
	<published>2009-07-02T12:30:26Z</published>
	<updated>2009-07-02T12:30:26Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 762774
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:30:26 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:30:26 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1015 committing plugin version patch from Donald Wodds.
&lt;br&gt;+OPENJPA-1015:
&lt;br&gt;+Add checkstyle plugin to pom.xml.
&lt;br&gt;+Submitted by: Donald Wodds.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r762774---svn%3Alog-tp3197299p3197299.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197276</id>
	<title>svn propchange: r769801 - svn:log</title>
	<published>2009-07-02T12:28:13Z</published>
	<updated>2009-07-02T12:28:13Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 769801
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:28:13 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:28:13 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1025 committing patch provided by B.J. Reed. Removin subList method from AbstractResultList forcing subclasses to override the method
&lt;br&gt;+OPENJPA-1025:
&lt;br&gt;+Removing subList method from AbstractResultList forcing subclasses to override the method
&lt;br&gt;+Submitted by :B.J. Reed. 
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r769801---svn%3Alog-tp3197276p3197276.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197268</id>
	<title>svn propchange: r776411 - svn:log</title>
	<published>2009-07-02T12:27:17Z</published>
	<updated>2009-07-02T12:27:17Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 776411
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:27:17 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:27:17 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-918. Committing testcases based on patch provided by B.J. Reed
&lt;br&gt;+OPENJPA-918:
&lt;br&gt;+Handle return values from StoredProcedures properly.
&lt;br&gt;+Submitted by : B.J. Reed
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r776411---svn%3Alog-tp3197268p3197268.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197256</id>
	<title>svn propchange: r776413 - svn:log</title>
	<published>2009-07-02T12:25:25Z</published>
	<updated>2009-07-02T12:25:25Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 776413
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:25:25 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:25:25 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-975. Committing patch from B.J. Reed.
&lt;br&gt;+OPENJPA-975:
&lt;br&gt;+Remove auto-generated escape('\') text from queries when using Oracle. 
&lt;br&gt;+Submitted by : B.J. Reed.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r776413---svn%3Alog-tp3197256p3197256.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197246</id>
	<title>svn propchange: r777135 - svn:log</title>
	<published>2009-07-02T12:24:12Z</published>
	<updated>2009-07-02T12:24:12Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 777135
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:24:12 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:24:12 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1015. Committing patch provided by BJ Reed. Additional testcases have been added which do not conform - I've updated some of them but some still exist so validation is not enabled by default
&lt;br&gt;+OPENJPA-1015:
&lt;br&gt;+Fixing code conventions (line length) for test classes. 
&lt;br&gt;+Submitted by: &amp;nbsp;BJ Reed.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r777135---svn%3Alog-tp3197246p3197246.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197193</id>
	<title>svn propchange: r779416 - svn:log</title>
	<published>2009-07-02T12:15:05Z</published>
	<updated>2009-07-02T12:15:05Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 779416
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:15:05 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:15:05 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1026. Committing patch from B.J. Reed and enabling newline check. 
&lt;br&gt;+OPENJPA-1026:
&lt;br&gt;+Add newlines at the end of files and make enable checkstyle configuration.
&lt;br&gt;+Submitted by : B.J. Reed
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r779416---svn%3Alog-tp3197193p3197193.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197182</id>
	<title>svn propchange: r779715 - svn:log</title>
	<published>2009-07-02T12:13:16Z</published>
	<updated>2009-07-02T12:13:16Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 779715
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:13:16 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:13:16 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1054 committing patch from Rick Curtis and Fay Wang. Testcase has been updated to use jMock instead of creating its own mock objects
&lt;br&gt;+OPENJPA-1054:
&lt;br&gt;+Handle LRS with MySQL. 
&lt;br&gt;+Submitted by: Rick Curtis and Fay Wang.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r779715---svn%3Alog-tp3197182p3197182.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197169</id>
	<title>svn propchange: r780086 - svn:log</title>
	<published>2009-07-02T12:11:31Z</published>
	<updated>2009-07-02T12:11:31Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 780086
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:11:31 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:11:31 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-952. Committing patch from Rick Curtis
&lt;br&gt;+OPENJPA-952:
&lt;br&gt;+Use attach API to dynamically enhance classes.
&lt;br&gt;+Submitted by: Rick Curtis
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r780086---svn%3Alog-tp3197169p3197169.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197157</id>
	<title>svn propchange: r781791 - svn:log</title>
	<published>2009-07-02T12:09:59Z</published>
	<updated>2009-07-02T12:09:59Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 781791
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:09:59 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:09:59 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1083 committing patch provided by Ravi Palacherla
&lt;br&gt;+OPENJPA-1083:
&lt;br&gt;+Try to determine constraint name when dropping tables.
&lt;br&gt;+Submitted by: Ravi Palacherla
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r781791---svn%3Alog-tp3197157p3197157.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197133</id>
	<title>svn propchange: r783376 - svn:log</title>
	<published>2009-07-02T12:07:04Z</published>
	<updated>2009-07-02T12:07:04Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 783376
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:07:04 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:07:04 2009
&lt;br&gt;@@ -1 +1,3 @@
&lt;br&gt;-OPENJPA-1125 committing patch from Rick Curtis. Preventing misleading enhancement message. 
&lt;br&gt;+OPENJPA-1125:
&lt;br&gt;+Supress misleading INFO message when using dynamic class enhancement.
&lt;br&gt;+Submitted by Rick Curtis.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r783376---svn%3Alog-tp3197133p3197133.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197108</id>
	<title>svn propchange: r787359 - svn:log</title>
	<published>2009-07-02T12:03:23Z</published>
	<updated>2009-07-02T12:03:23Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 787359
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 19:03:23 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 19:03:23 2009
&lt;br&gt;@@ -1 +1,4 @@
&lt;br&gt;-OPENJPA-1119 committing patch from Rick Curtis.
&lt;br&gt;+OPENJPA-1119:
&lt;br&gt;+Excluding tests that rely on subclassing or fail with dynamic enhancement. 
&lt;br&gt;+Also handle NPE from if CodeSource is null.
&lt;br&gt;+Submitted by : Rick Curtis.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r787359---svn%3Alog-tp3197108p3197108.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197062</id>
	<title>svn propchange: r790003 - svn:log</title>
	<published>2009-07-02T11:56:50Z</published>
	<updated>2009-07-02T11:56:50Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Revision: 790003
&lt;br&gt;Modified property: svn:log
&lt;br&gt;&lt;br&gt;Modified: svn:log at Thu Jul &amp;nbsp;2 18:56:50 2009
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:log (original)
&lt;br&gt;+++ svn:log Thu Jul &amp;nbsp;2 18:56:50 2009
&lt;br&gt;@@ -1,2 +1,4 @@
&lt;br&gt;-OPENJPA-1151 committing patch from Jody Grassel.
&lt;br&gt;+OPENJPA-1151: 
&lt;br&gt;+Caching timestamp used for query results eviction. 
&lt;br&gt;+Submitted by: Jody Grassel.
&lt;br&gt;&amp;nbsp;	modified: &amp;nbsp; openjpa-kernel/src/main/java/org/apache/openjpa/datacache/AbstractQueryCache.java
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-propchange%3A-r790003---svn%3Alog-tp3197062p3197062.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197015</id>
	<title>svn commit: r790707 - /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/</title>
	<published>2009-07-02T11:45:07Z</published>
	<updated>2009-07-02T11:45:07Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 18:45:07 2009
&lt;br&gt;New Revision: 790707
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790707&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790707&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;OPENJPA-1156 remove primitiveidentity directory
&lt;br&gt;&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790707----openjpa-trunk-openjpa-persistence-jdbc-src-test-java-org-apache-openjpa-persistence-inheritance-entities-idmsc-primitiveidentity--tp3197015p3197015.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197002</id>
	<title>svn commit: r790703 [1/2] - in /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities: ./ idmsc/jointable/ idmsc/jointable/chardiscriminator/ idmsc/jointable/intdiscriminator/ idmsc/jointable/stringdis...</title>
	<published>2009-07-02T11:40:14Z</published>
	<updated>2009-07-02T11:40:14Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Author: mikedd
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;New Revision: 790703
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790703&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790703&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;OPENJPA-1156. Refactoring test code from OPENJPA-1061 to avoid path length problems in some environments. Specifically I've removed the primitiveidentity component of the package since it was not adding any semantic meaning to the tests. Further refactoring may be needed, but this should prevent the specific problem that was reported. 
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r790676, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/jointable/chardiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r790676, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/jointable/intdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r790676, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/jointable/stringdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r790676, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/singletable/chardiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r790676, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/singletable/intdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r790676, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/singletable/stringdiscriminator/
&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/jointable/chardiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/jointable/intdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/jointable/stringdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/singletable/chardiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/singletable/intdiscriminator/
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/primitiveidentity/singletable/stringdiscriminator/
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/EntityMapping.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityB.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafA.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafC.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCMappedSuperclass.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCRootEntity.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityB.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafA.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafC.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCMappedSuperclass.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCRootEntity.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityB.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafA.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafC.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCMappedSuperclass.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCRootEntity.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityB.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafA.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafC.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCMappedSuperclass.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCRootEntity.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityB.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafA.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafC.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCMappedSuperclass.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCRootEntity.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityB.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafA.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafC.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD1.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD2.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCMappedSuperclass.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCRootEntity.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/EntityMapping.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/EntityMapping.java?rev=790703&amp;r1=790702&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/EntityMapping.java?rev=790703&amp;r1=790702&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/EntityMapping.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/EntityMapping.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -4,126 +4,70 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;PrimitiveIDMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCEntityB;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCEntityD;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCLeafA;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCLeafB1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCLeafB2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCLeafC;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCLeafD1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCLeafD2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.chardiscriminator.PIdJTCDMSCRootEntity;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCEntityB;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCEntityD;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCLeafA;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCLeafB1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCLeafB2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCLeafC;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCLeafD1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCLeafD2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.intdiscriminator.PIdJTIDMSCRootEntity;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCEntityB;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCEntityD;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCLeafA;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCLeafB1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCLeafB2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCLeafC;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCLeafD1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCLeafD2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.jointable.stringdiscriminator.PIdJTSDMSCRootEntity;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCEntityB;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCEntityD;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCLeafA;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCLeafB1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCLeafB2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCLeafC;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCLeafD1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCLeafD2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.chardiscriminator.PIdSTCDMSCRootEntity;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCEntityB;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCEntityD;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCLeafA;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCLeafB1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCLeafB2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCLeafC;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCLeafD1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCLeafD2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator.PIdSTIDMSCRootEntity;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCEntityB;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCEntityD;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCLeafA;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCLeafB1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCLeafB2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCLeafC;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCLeafD1;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCLeafD2;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCMappedSuperclass;
&lt;br&gt;-import org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator.PIdSTSDMSCRootEntity;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCEntityB;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCEntityD;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCLeafA;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCLeafB1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCLeafB2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCLeafC;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCLeafD1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCLeafD2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCMappedSuperclass;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator.PIdJTCDMSCRootEntity;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCEntityB;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCEntityD;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCLeafA;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCLeafB1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCLeafB2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCLeafC;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCLeafD1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCLeafD2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCMappedSuperclass;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator.PIdJTIDMSCRootEntity;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCEntityB;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCEntityD;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCLeafA;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCLeafB1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCLeafB2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCLeafC;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCLeafD1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCLeafD2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;PIdJTSDMSCMappedSuperclass;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator.PIdJTSDMSCRootEntity;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCEntityB;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCEntityD;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCLeafA;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCLeafB1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCLeafB2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCLeafC;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCLeafD1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCLeafD2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;PIdSTCDMSCMappedSuperclass;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator.PIdSTCDMSCRootEntity;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCEntityB;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCEntityD;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCLeafA;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCLeafB1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCLeafB2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCLeafC;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCLeafD1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCLeafD2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;PIdSTIDMSCMappedSuperclass;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator.PIdSTIDMSCRootEntity;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCEntityB;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCEntityD;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCLeafA;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCLeafB1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCLeafB2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCLeafC;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCLeafD1;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCLeafD2;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;PIdSTSDMSCMappedSuperclass;
&lt;br&gt;+import org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator.PIdSTSDMSCRootEntity;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class EntityMapping {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityB.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityB.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityB.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityD.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityD.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCEntityD.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafA.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafA.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafA.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafB2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafC.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafC.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafC.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCLeafD2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCMappedSuperclass.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCMappedSuperclass.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCMappedSuperclass.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.MappedSuperclass;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCRootEntity.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCRootEntity.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/chardiscriminator/PIdJTCDMSCRootEntity.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -16,8 +16,7 @@
&lt;br&gt;&amp;nbsp; * specific language governing permissions and limitations
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorColumn;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorType;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityB.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityB.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityB.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityD.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityD.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCEntityD.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafA.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafA.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafA.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafB2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafC.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafC.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafC.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCLeafD2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCMappedSuperclass.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCMappedSuperclass.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCMappedSuperclass.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.MappedSuperclass;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCRootEntity.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCRootEntity.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/intdiscriminator/PIdJTIDMSCRootEntity.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -16,8 +16,7 @@
&lt;br&gt;&amp;nbsp; * specific language governing permissions and limitations
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorColumn;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorType;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityB.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityB.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityB.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityD.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityD.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCEntityD.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafA.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafA.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafA.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafB2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafC.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafC.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafC.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCLeafD2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCMappedSuperclass.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCMappedSuperclass.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCMappedSuperclass.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.MappedSuperclass;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCRootEntity.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCRootEntity.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/jointable/stringdiscriminator/PIdJTSDMSCRootEntity.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -16,8 +16,7 @@
&lt;br&gt;&amp;nbsp; * specific language governing permissions and limitations
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.jointable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.jointable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorColumn;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorType;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityB.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityB.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityB.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityD.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityD.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCEntityD.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafA.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafA.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafA.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafB2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafC.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafC.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafC.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCLeafD2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCMappedSuperclass.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCMappedSuperclass.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCMappedSuperclass.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.MappedSuperclass;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCRootEntity.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCRootEntity.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/chardiscriminator/PIdSTCDMSCRootEntity.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -16,8 +16,7 @@
&lt;br&gt;&amp;nbsp; * specific language governing permissions and limitations
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;-primitiveidentity.singletable.chardiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.chardiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorColumn;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorType;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityB.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityB.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityB.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityD.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityD.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCEntityD.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafA.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafA.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafA.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafB2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafC.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafC.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafC.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCLeafD2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCMappedSuperclass.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCMappedSuperclass.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCMappedSuperclass.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.MappedSuperclass;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790703--1-2----in--openjpa-trunk-openjpa-persistence-jdbc-src-test-java-org-apache-openjpa-persistence-inheritance-entities%3A-.--idmsc-jointable--idmsc-jointable-chardiscriminator--idm-tp3197002p3197002.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3197001</id>
	<title>svn commit: r790703 [2/2] - in /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities: ./ idmsc/jointable/ idmsc/jointable/chardiscriminator/ idmsc/jointable/intdiscriminator/ idmsc/jointable/stringdis...</title>
	<published>2009-07-02T11:40:14Z</published>
	<updated>2009-07-02T11:40:14Z</updated>
	<author>
		<name>mikedd</name>
	</author>
	<content type="html">Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCRootEntity.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCRootEntity.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/intdiscriminator/PIdSTIDMSCRootEntity.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -16,8 +16,7 @@
&lt;br&gt;&amp;nbsp; * specific language governing permissions and limitations
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.intdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.intdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorColumn;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorType;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityB.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityB.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityB.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityB.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityD.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityD.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityD.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCEntityD.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafA.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafA.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafA.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafA.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafB2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafC.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafC.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafC.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafC.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD1.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD1.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD1.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD1.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD2.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD2.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD2.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCLeafD2.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorValue;
&lt;br&gt;&amp;nbsp;import javax.persistence.Entity;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCMappedSuperclass.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCMappedSuperclass.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCMappedSuperclass.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCMappedSuperclass.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -17,8 +17,7 @@
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.MappedSuperclass;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCRootEntity.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCRootEntity.java?rev=790703&amp;r1=790676&amp;r2=790703&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCRootEntity.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/entities/idmsc/singletable/stringdiscriminator/PIdSTSDMSCRootEntity.java Thu Jul &amp;nbsp;2 18:40:11 2009
&lt;br&gt;@@ -16,8 +16,7 @@
&lt;br&gt;&amp;nbsp; * specific language governing permissions and limitations
&lt;br&gt;&amp;nbsp; * under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.openjpa.persistence.inheritance.entities.idmsc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;primitiveidentity.singletable.stringdiscriminator;
&lt;br&gt;+package org.apache.openjpa.persistence.inheritance.entities.idmsc.singletable.stringdiscriminator;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorColumn;
&lt;br&gt;&amp;nbsp;import javax.persistence.DiscriminatorType;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790703--2-2----in--openjpa-trunk-openjpa-persistence-jdbc-src-test-java-org-apache-openjpa-persistence-inheritance-entities%3A-.--idmsc-jointable--idmsc-jointable-chardiscriminator--idm-tp3197001p3197001.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3196865</id>
	<title>svn commit: r790700 - in /openjpa/trunk: openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/ openjpa-kernel/src/main/java/org/apache/openjpa/util/ openjpa-kernel/src/main/java/org/apache/openjpa/validation/ openjpa-p...</title>
	<published>2009-07-02T11:21:27Z</published>
	<updated>2009-07-02T11:21:27Z</updated>
	<author>
		<name>jrbauer</name>
	</author>
	<content type="html">Author: jrbauer
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;New Revision: 790700
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790700&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790700&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;OPENJPA-1068 Modified exception translator to translate wrapped validation exceptions. &amp;nbsp;EM operations now throw correct validation exceptions.
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ExceptionInfo.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceExceptions.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/validation/TestConstraints.java Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;@@ -15,6 +15,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.persistence.Query;
&lt;br&gt;&amp;nbsp;import javax.persistence.ValidationMode;
&lt;br&gt;+import javax.validation.ConstraintViolationException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.conf.OpenJPAConfiguration;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.log.Log;
&lt;br&gt;@@ -102,7 +103,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullUpdateConstraint() Part 2 of 2 failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ConstraintViolationException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullUpdateConstraint() Part 2 of 2 passed&amp;quot;);
&lt;br&gt;@@ -153,6 +154,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((emf != null) &amp;&amp; emf.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;emf.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Part 2 - Verify delete using default group does not cause Validation
&lt;br&gt;@@ -186,6 +190,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().rollback();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((emf != null) &amp;&amp; emf.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;emf.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -225,6 +232,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((em != null) &amp;&amp; em.isOpen()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.close();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((emf != null) &amp;&amp; emf.isOpen()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;emf.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -251,7 +261,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullConstraint() failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ConstraintViolationException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNullConstraint() passed&amp;quot;);
&lt;br&gt;@@ -285,7 +295,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNotNullConstraint() failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ConstraintViolationException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testNotNullConstraint() passed&amp;quot;);
&lt;br&gt;@@ -351,7 +361,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertTrueConstraint() failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ConstraintViolationException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertTrueConstraint() passed&amp;quot;);
&lt;br&gt;@@ -385,7 +395,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.getTransaction().commit();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertFalseConstraint() failed&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expected a Validation exception&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ConstraintViolationException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// expected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;Caught expected exception = &amp;quot; + e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getLog().trace(&amp;quot;testAssertFalseConstraint() passed&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ExceptionInfo.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ExceptionInfo.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ExceptionInfo.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ExceptionInfo.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ExceptionInfo.java Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;@@ -33,6 +33,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final int UNSUPPORTED = 3;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final int USER = 4;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final int WRAPPED = 5;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final int UNAVAILABLE = 6;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Added: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java?rev=790700&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java?rev=790700&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java (added)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;@@ -0,0 +1,44 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. &amp;nbsp;See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. &amp;nbsp;The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. &amp;nbsp;See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License. &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.openjpa.validation;
&lt;br&gt;+
&lt;br&gt;+import org.apache.openjpa.util.OpenJPAException;
&lt;br&gt;+
&lt;br&gt;+@SuppressWarnings(&amp;quot;serial&amp;quot;)
&lt;br&gt;+public class ValidationUnavailableException extends OpenJPAException {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ValidationUnavailableException(String msg) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(msg);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ValidationUnavailableException(String msg, RuntimeException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(msg, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ValidationUnavailableException(String msg, RuntimeException e, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean fatal) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(msg, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setFatal(fatal);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public int getType() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return UNAVAILABLE;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/validation/ValidationUnavailableException.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;@@ -72,10 +72,12 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.QueryMetaData;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.SequenceMetaData;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.persistence.criteria.CriteriaBuilder;
&lt;br&gt;+import org.apache.openjpa.persistence.validation.ValidationUtils;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.Exceptions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.ImplHelper;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.RuntimeExceptionTranslator;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.UserException;
&lt;br&gt;+import org.apache.openjpa.util.WrappedException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Implementation of {@link EntityManager} interface.
&lt;br&gt;@@ -552,6 +554,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalStateException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw e;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	// Per JPA 2.0 spec, if the exception was due to a JSR-303 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// constraint violation, the ConstraintViolationException should be 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// thrown. &amp;nbsp;Since JSR-303 is optional, the cast to RuntimeException 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// prevents the introduction of a runtime dependency on the BV API.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ValidationUtils.isConstraintViolationException(e))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (RuntimeException)e;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// RollbackExceptions are special and aren't handled by the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// normal exception translator, since the spec says they
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// should be thrown whenever the commit fails for any reason at
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceExceptions.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceExceptions.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceExceptions.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceExceptions.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceExceptions.java Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;@@ -33,6 +33,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.RuntimeExceptionTranslator;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.StoreException;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.UserException;
&lt;br&gt;+import org.apache.openjpa.util.WrappedException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Converts from OpenJPA to persistence exception types.
&lt;br&gt;@@ -138,6 +139,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return translateStoreException(ke);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case OpenJPAException.USER:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return translateUserException(ke);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case OpenJPAException.WRAPPED:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return translateWrappedException(ke);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return translateGeneralException(ke);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -249,6 +252,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.setStackTrace(ke.getStackTrace());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return e;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Translate the given wrapped exception. &amp;nbsp;If contains an Exception, return
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * the exception. &amp;nbsp;If contains a Throwable, wrap the throwable and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * return it.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static Exception translateWrappedException(OpenJPAException ke) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Throwable t = ke.getCause();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (t instanceof Exception)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	return (Exception)t;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return translateCause(ke);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Translate to a facade-level exception if the given exception
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java?rev=790700&amp;r1=790699&amp;r2=790700&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java Thu Jul &amp;nbsp;2 18:21:26 2009
&lt;br&gt;@@ -23,7 +23,9 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.conf.OpenJPAConfiguration;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.log.Log;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.util.Localizer;
&lt;br&gt;+import org.apache.openjpa.lib.util.Localizer.Message;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.validation.ValidationException;
&lt;br&gt;+import org.apache.openjpa.validation.ValidationUnavailableException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;@@ -77,9 +79,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ClassNotFoundException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (bValRequired) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// fatal error - ValidationMode requires a validator
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.error(_loc.get(&amp;quot;vlem-creation-error&amp;quot;), e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// rethrow as a WrappedException
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ValidationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Message msg = _loc.get(&amp;quot;vlem-creation-error&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.error(msg, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// rethrow as a more descriptive/identifiable exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ValidationUnavailableException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msg.getMessage(),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new RuntimeException(e), true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// no optional validation provider, so just trace output
&lt;br&gt;@@ -105,9 +109,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (RuntimeException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (bValRequired) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// fatal error - ValidationMode requires a validator
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.error(_loc.get(&amp;quot;vlem-creation-error&amp;quot;), e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// rethrow as a WrappedException
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ValidationException(e, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Message msg = _loc.get(&amp;quot;vlem-creation-error&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.error(msg, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// rethrow as a more descriptive/identifiable exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ValidationUnavailableException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msg.getMessage(),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e, true);
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// unexpected, but validation is optional,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// so just log it as a warning
&lt;br&gt;@@ -123,4 +132,21 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return brc;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Determines whether an exception is a constraint violation exception via
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * class name. Does not require JSR-303 API to be in classpath.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param e exception to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return true of the exception is a constraint violation exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static boolean isConstraintViolationException(Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (e == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (e.getClass().getName().equals(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;javax.validation.ConstraintViolationException&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/svn-commit%3A-r790700---in--openjpa-trunk%3A-openjpa-integration-validation-src-test-java-org-apache-openjpa-integration-validation--openjpa-kernel-src-main-java-org-apache-openjpa-util--openjpa-kerne-tp3196865p3196865.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3196295</id>
	<title>svn commit: r790676 [1/2] - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-kernel/src/main/java/org/apache/openjpa/datacache/ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ openjpa-kernel/src/main/java/or...</title>
	<published>2009-07-02T09:57:18Z</published>
	<updated>2009-07-02T09:57:18Z</updated>
	<author>
		<name>Pinaki Poddar</name>
	</author>
	<content type="html">Author: ppoddar
&lt;br&gt;Date: Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;New Revision: 790676
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=790676&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=790676&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;OPENJPA-703: Expand type of queries that can be cached especially with various projection terms. Refactor testing of PreparedQueryCache.
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java &amp;nbsp; (with props)
&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestEagerQueries.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestParameterProcessing.java
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedSQLStoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractStoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ExpressionStoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StoreQuery.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/QueryExpressions.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Address.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Book.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/CD.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Company.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Department.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Employee.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Merchandise.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/Person.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestFinderCache.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -120,7 +120,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FinderQuery&amp;lt;ClassMapping, SelectExecutor, Result&amp;gt; result = 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_delegate.get(mapping);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_stats.recordExecution(mapping, result != null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_stats.recordExecution(mapping);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return result;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -170,8 +170,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;long end = (dict.supportsSelectEndIndex) ? range.end : Long.MAX_VALUE;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QueryExpressionsState[] states = new QueryExpressionsState[exps.length];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; states.length; i++)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; states.length; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;states[i] = new QueryExpressionsState();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exps[i].state = states[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ExpContext ctx = new ExpContext(_store, params, fetch);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// add selects with populate WHERE conditions to list
&lt;br&gt;&lt;br&gt;Added: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java?rev=790676&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java?rev=790676&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java (added)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -0,0 +1,57 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. &amp;nbsp;See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. &amp;nbsp;The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. &amp;nbsp;See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License. &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.openjpa.jdbc.kernel;
&lt;br&gt;+
&lt;br&gt;+import java.sql.SQLException;
&lt;br&gt;+
&lt;br&gt;+import org.apache.openjpa.jdbc.kernel.exps.ExpContext;
&lt;br&gt;+import org.apache.openjpa.jdbc.kernel.exps.QueryExpressionsState;
&lt;br&gt;+import org.apache.openjpa.jdbc.sql.Result;
&lt;br&gt;+import org.apache.openjpa.jdbc.sql.SelectExecutor;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Object provider implementation wrapped around a projection select that has been executed earlier.
&lt;br&gt;+ *
&lt;br&gt;+ * @author Pinaki Poddar
&lt;br&gt;+ */
&lt;br&gt;+class PreparedProjectionResultObjectProvider
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;extends ProjectionResultObjectProvider {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PreparedProjectionResultObjectProvider(SelectExecutor sel, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QueryExpressions exps, QueryExpressionsState state, ExpContext ctx, Result res) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(sel, exps, state, ctx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_res = res;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PreparedProjectionResultObjectProvider(SelectExecutor sel, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QueryExpressions[] exps, QueryExpressionsState[] state, ExpContext ctx, Result res){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(sel, exps, state, ctx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_res = res;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Result getResult() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _res;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void open() throws SQLException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// do nothing
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedProjectionResultObjectProvider.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -330,6 +330,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = fetch.getHint(hint);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return result != null &amp;&amp; &amp;quot;true&amp;quot;.equalsIgnoreCase(result.toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void clear() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_delegate.clear();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_stats.clear();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;	//-------------------------------------------------------
&lt;br&gt;&amp;nbsp;	// Configurable contract
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -39,6 +39,8 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.Query;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.QueryImpl;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.QueryLanguages;
&lt;br&gt;+import org.apache.openjpa.kernel.StoreQuery;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.rop.ResultList;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.util.Localizer;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.ImplHelper;
&lt;br&gt;@@ -47,6 +49,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Implements {@link PreparedQuery} for SQL queries.
&lt;br&gt;+ * PreparedQuery holds the post-compilation and post-execution state of a kernel Query.
&lt;br&gt;+ * The post-execution internal state of a query is appended as a &amp;lt;em&amp;gt;user object&amp;lt;/em&amp;gt;
&lt;br&gt;+ * to the user-visible result to maintain the API contract. 
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;&amp;nbsp; * @author Pinaki Poddar
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -61,11 +66,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// Post-compilation state of an executable query, populated on construction
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Class&amp;lt;?&amp;gt; _candidate;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Class&amp;lt;?&amp;gt;[] _resultClass;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private ClassMapping _resultMapping;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private boolean _subclasses;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private boolean _isProjection;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// post-execution state of a query
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private QueryExpressions[] _exps;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Class&amp;lt;?&amp;gt;[] _projTypes;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// Position of the user defined parameters in the _params list
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Map&amp;lt;Object, int[]&amp;gt; &amp;nbsp; &amp;nbsp;_userParamPositions;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Map&amp;lt;Integer, Object&amp;gt; _template;
&lt;br&gt;@@ -94,9 +100,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (compiled != null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_candidate &amp;nbsp; &amp;nbsp;= compiled.getCandidateType();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_subclasses &amp;nbsp; = compiled.hasSubclasses();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_isProjection = compiled.getProjectionAliases().length &amp;gt; 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_isProjection)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_resultClass &amp;nbsp;= compiled.getProjectionTypes();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -128,17 +131,21 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _initialized;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _exps;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Class[] getProjectionTypes() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _projTypes;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Pours the post-compilation state held by this receiver to the given
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * query.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setInto(Query q) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	q.setQuery(_id);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!_isProjection)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;q.setCandidateType(_candidate, _subclasses);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_resultMapping == null &amp;&amp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_resultClass != null &amp;&amp; _resultClass.length == 1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;q.setResultType(_resultClass[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;q.setCandidateType(_candidate, _subclasses);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -158,21 +165,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;select = extractImplementation(selector);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (select == null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_resultClass != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// uncachable queries:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; query not returning the candidate entity class type
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; query returing embeddable class type
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; query returning more than one entity class types
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; _resultClass.length; i++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_resultMapping = (ClassMapping) select.getConfiguration().
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getMetaDataRepositoryInstance().getMetaData(_resultClass[i],
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getClass().getClassLoader(), false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_resultMapping != null &amp;&amp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(_resultClass[i] != _candidate ||
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_resultMapping.isEmbeddedOnly() || _resultClass.length &amp;gt; 1))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SQLBuffer buffer = selector.getSQL();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (buffer == null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;@@ -185,16 +177,29 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Extract the underlying SelectExecutor from the given argument, if 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * possible.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Extract the underlying SelectExecutor from the given argument, if possible.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private SelectExecutor extractSelectExecutor(Object result) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (result instanceof ResultList == false)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object provider = ((ResultList)result).getUserObject();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object userObject = ((ResultList&amp;lt;?&amp;gt;)result).getUserObject();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (userObject == null || !userObject.getClass().isArray() || ((Object[])userObject).length != 2)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object provider = ((Object[])userObject)[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object executor = ((Object[])userObject)[1];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (executor instanceof StoreQuery.Executor == false)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_exps = ((StoreQuery.Executor)executor).getQueryExpressions();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (_exps[0].projections.length == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_projTypes = StoreQuery.EMPTY_CLASSES;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_projTypes = new Class[_exps[0].projections.length];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; _exps[0].projections.length; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_projTypes[i] = _exps[0].projections[i].getType();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (provider instanceof QueryImpl.PackingResultObjectProvider) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider = ((QueryImpl.PackingResultObjectProvider)provider)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.getDelegate();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider = ((QueryImpl.PackingResultObjectProvider)provider).getDelegate();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (provider instanceof SelectResultObjectProvider) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((SelectResultObjectProvider)provider).getSelect();
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedSQLStoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedSQLStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedSQLStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedSQLStoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedSQLStoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -24,7 +24,8 @@
&lt;br&gt;&amp;nbsp;import java.sql.SQLException;
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
&lt;br&gt;+import org.apache.openjpa.jdbc.kernel.exps.ExpContext;
&lt;br&gt;+import org.apache.openjpa.jdbc.kernel.exps.QueryExpressionsState;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.meta.ClassMapping;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.sql.DBDictionary;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.sql.Result;
&lt;br&gt;@@ -33,6 +34,8 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.sql.SQLExceptions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.sql.SelectImpl;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.StoreQuery;
&lt;br&gt;+import org.apache.openjpa.kernel.ExpressionStoreQuery.AbstractExpressionExecutor;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.rop.RangeResultObjectProvider;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.rop.ResultObjectProvider;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.ClassMetaData;
&lt;br&gt;@@ -44,6 +47,7 @@
&lt;br&gt;&amp;nbsp; * @author Pinaki Poddar
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;+@SuppressWarnings(&amp;quot;serial&amp;quot;)
&lt;br&gt;&amp;nbsp;public class PreparedSQLStoreQuery extends SQLStoreQuery {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private PreparedQueryImpl _cached;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public PreparedSQLStoreQuery(JDBCStore store) {
&lt;br&gt;@@ -67,20 +71,29 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _cached;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static class PreparedSQLExecutor extends AbstractExecutor {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Executor of a prepared query uses the QueryExpressions of the original query
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * available via the PreparedQuery.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class PreparedSQLExecutor extends AbstractExpressionExecutor {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final ClassMetaData _meta;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public PreparedSQLExecutor(PreparedSQLStoreQuery q, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassMetaData candidate) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final PreparedSQLStoreQuery _query;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public PreparedSQLExecutor(PreparedSQLStoreQuery q, ClassMetaData candidate) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_meta = candidate;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_query = q;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int getOperation(StoreQuery q) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return OP_SELECT;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _query.getPreparedQuery().getQueryExpressions();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Class[] getProjectionTypes() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _query.getPreparedQuery().getProjectionTypes();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ResultObjectProvider executeQuery(StoreQuery q,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] params, Range range) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ResultObjectProvider executeQuery(StoreQuery q, Object[] params, Range range) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PreparedSQLStoreQuery psq = (PreparedSQLStoreQuery) q;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PreparedQueryImpl pq = psq.getPreparedQuery();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JDBCStore store = psq.getStore();
&lt;br&gt;@@ -88,33 +101,36 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SQLBuffer buf = new SQLBuffer(dict).append(pq.getTargetQuery());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Connection conn = store.getConnection();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JDBCFetchConfiguration fetch = (JDBCFetchConfiguration)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;q.getContext().getFetchConfiguration();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JDBCFetchConfiguration fetch = (JDBCFetchConfiguration)q.getContext().getFetchConfiguration();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ResultObjectProvider rop;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PreparedStatement stmnt = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stmnt = !range.lrs
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;? buf.prepareStatement(conn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: buf.prepareStatement(conn, fetch, -1, -1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stmnt = !range.lrs ? buf.prepareStatement(conn) : buf.prepareStatement(conn, fetch, -1, -1);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int index = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; params.length; i++)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; params.length; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dict.setUnknown(stmnt, ++index, params[i], null);
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dict.setTimeouts(stmnt, fetch, false);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ResultSet rs = stmnt.executeQuery();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SelectImpl cachedSelect = pq.getSelect();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Result res = cachedSelect.getEagerResult(conn, stmnt, rs, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;store, fetch, false, null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (q.getContext().getCandidateType() != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Result res = cachedSelect.getEagerResult(conn, stmnt, rs, store, fetch, false, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (getQueryExpressions()[0].projections.length &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ExpContext ctx = new ExpContext(store, params, fetch);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QueryExpressionsState state = (QueryExpressionsState)getQueryExpressions()[0].state;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rop = new PreparedProjectionResultObjectProvider(cachedSelect, getQueryExpressions(), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new QueryExpressionsState[]{state}, ctx, res);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (q.getContext().getCandidateType() != null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rop = new PreparedResultObjectProvider(cachedSelect, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(ClassMapping) _meta, store, fetch, res);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rop = new SQLProjectionResultObjectProvider(store, fetch,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(ResultSetResult)res, q.getContext().getResultType());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (SQLException se) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (stmnt != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try { stmnt.close(); } catch (SQLException se2) {}
&lt;br&gt;@@ -133,8 +149,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * The given userParams is already re-parameterized, so this method have
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * to merely copy the given Map values.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @see PreparedQueryImpl#reparametrize(Map,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * org.apache.openjpa.kernel.Broker)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @see PreparedQueryImpl#reparametrize(Map, org.apache.openjpa.kernel.Broker)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object[] toParameterArray(StoreQuery q, Map userParams) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] array = new Object[userParams.size()];
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -27,14 +27,11 @@
&lt;br&gt;&amp;nbsp;import java.sql.SQLException;
&lt;br&gt;&amp;nbsp;import java.util.ArrayList;
&lt;br&gt;&amp;nbsp;import java.util.Arrays;
&lt;br&gt;-import java.util.HashSet;
&lt;br&gt;&amp;nbsp;import java.util.Iterator;
&lt;br&gt;&amp;nbsp;import java.util.List;
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;-import java.util.Set;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.commons.lang.StringUtils;
&lt;br&gt;-import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.meta.ClassMapping;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.meta.MappingRepository;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.jdbc.meta.QueryResultMapping;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -76,7 +76,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String ACTION_ADD = &amp;quot;add&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String ACTION_GET = &amp;quot;get&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String ACTION_SET = &amp;quot;set&amp;quot;;
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final String DEFAULT_TABLE = &amp;quot;OPENJPA_SEQUENCE_TABLE&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final Localizer _loc = Localizer.forPackage
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(TableJDBCSeq.class);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -87,7 +88,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final HashMap&amp;lt;ClassMapping, Status&amp;gt; _stat =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new HashMap&amp;lt;ClassMapping, Status&amp;gt;();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String _table = &amp;quot;OPENJPA_SEQUENCE_TABLE&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String _table = DEFAULT_TABLE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String _seqColumnName = &amp;quot;SEQUENCE_VALUE&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String _pkColumnName = &amp;quot;ID&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String[] _uniqueColumnNames;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -41,6 +41,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.StoreQuery;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.AggregateListener;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.FilterListener;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.rop.ListResultObjectProvider;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.rop.ResultObjectProvider;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.ClassMetaData;
&lt;br&gt;@@ -350,6 +351,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rop;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _ex.getQueryExpressions();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Clear the cached queries associated with the access path
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractStoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractStoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractStoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -23,6 +23,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.commons.collections.map.LinkedMap;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.AggregateListener;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.FilterListener;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.ClassMetaData;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.InternalException;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.util.UnsupportedException;
&lt;br&gt;@@ -131,6 +132,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void validate(StoreQuery q) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void getRange(StoreQuery q, Object[] params, Range range) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ExpressionStoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ExpressionStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ExpressionStoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ExpressionStoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ExpressionStoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -287,11 +287,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;implements Executor {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Return the parsed query expressions for our candidate types.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected abstract QueryExpressions[] getQueryExpressions();
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Return the query expressions for one candidate type, or die if none.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private QueryExpressions assertQueryExpression() {
&lt;br&gt;@@ -370,6 +365,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public final String[] getProjectionAliases(StoreQuery q) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return assertQueryExpression().projectionAliases;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Class[] getProjectionTypes(StoreQuery q) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public final int getOperation(StoreQuery q) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return assertQueryExpression().operation;
&lt;br&gt;@@ -574,7 +573,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _exps;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -735,7 +734,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _exps;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -187,6 +187,11 @@
&lt;br&gt;&amp;nbsp;	public void removeExclusionPattern(String pattern);
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;+	 * Clears all cached queries.
&lt;br&gt;+	 */
&lt;br&gt;+	public void clear();
&lt;br&gt;+	
&lt;br&gt;+	/**
&lt;br&gt;&amp;nbsp;	 * Gets the simple statistics for executed queries.
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&amp;nbsp;	public QueryStatistics&amp;lt;String&amp;gt; getStatistics();
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -41,6 +41,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.Literal;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.Parameter;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.Path;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.Val;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.log.Log;
&lt;br&gt;@@ -1230,7 +1231,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean lrs = range.lrs &amp;&amp; !ex.isAggregate(q) &amp;&amp; !ex.hasGrouping(q);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ResultList res = (!detach &amp;&amp; lrs) ? _fc.newResultList(rop)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: new EagerResultList(rop);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;res.setUserObject(rop);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;res.setUserObject(new Object[]{rop,ex});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_resultLists.add(decorateResultList(res));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return res;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1825,6 +1826,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public MergedExecutor(StoreQuery.Executor[] executors) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_executors = executors;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public QueryExpressions[] getQueryExpressions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return _executors[0].getQueryExpressions();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ResultObjectProvider executeQuery(StoreQuery q,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] params, StoreQuery.Range range) {
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -40,10 +40,9 @@
&lt;br&gt;&amp;nbsp;public interface QueryStatistics&amp;lt;T&amp;gt; extends Serializable {
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;-	 * Record that the given query has been executed. The boolean parameter
&lt;br&gt;-	 * designates whether the executed query is a cached version. &amp;nbsp;
&lt;br&gt;+	 * Record that the given query has been executed. 
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;-	void recordExecution(T query, boolean cached);
&lt;br&gt;+	void recordExecution(T query);
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;&amp;nbsp;	 * Gets number of total query execution since last reset.
&lt;br&gt;@@ -98,11 +97,16 @@
&lt;br&gt;&amp;nbsp;	public Date start();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;-	 * Clears all accumulated statistics.
&lt;br&gt;+	 * Clears all &amp;nbsp;statistics accumulated since last reset.
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&amp;nbsp;	public void reset();
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;+	 * Clears all statistics accumulated since start.
&lt;br&gt;+	 */
&lt;br&gt;+	public void clear();
&lt;br&gt;+	
&lt;br&gt;+	/**
&lt;br&gt;&amp;nbsp;	 * Dumps on the given output stream.
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&amp;nbsp;	public void dump(PrintStream out);
&lt;br&gt;@@ -113,6 +117,9 @@
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&amp;nbsp;	public static class Default&amp;lt;T&amp;gt; implements QueryStatistics&amp;lt;T&amp;gt; {
&lt;br&gt;&amp;nbsp;		private static final int ARRAY_SIZE = 2;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static final int READ &amp;nbsp;= 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static final int HIT &amp;nbsp; = 1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;		private long[] astat = new long[ARRAY_SIZE];
&lt;br&gt;&amp;nbsp;		private long[] stat &amp;nbsp;= new long[ARRAY_SIZE];
&lt;br&gt;&amp;nbsp;		private Map&amp;lt;T, long[]&amp;gt; stats &amp;nbsp;= new HashMap&amp;lt;T, long[]&amp;gt;();
&lt;br&gt;@@ -120,9 +127,6 @@
&lt;br&gt;&amp;nbsp;		private Date start = new Date();
&lt;br&gt;&amp;nbsp;		private Date since = start;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		private static final int READ &amp;nbsp;= 0;
&lt;br&gt;-		private static final int HIT &amp;nbsp; = 1;
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;		public long getExecutionCount() {
&lt;br&gt;&amp;nbsp;			return stat[READ];
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;@@ -173,6 +177,16 @@
&lt;br&gt;&amp;nbsp;			stats.clear();
&lt;br&gt;&amp;nbsp;			since = new Date();
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;+		
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;public void clear() {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; astat = new long[ARRAY_SIZE];
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; stat &amp;nbsp;= new long[ARRAY_SIZE];
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; stats = new HashMap&amp;lt;T, long[]&amp;gt;();
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; astats = new HashMap&amp;lt;T, long[]&amp;gt;();
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; start &amp;nbsp;= new Date();
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; since &amp;nbsp;= start;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		private void addSample(T query, int index) {
&lt;br&gt;&amp;nbsp;			stat[index]++;
&lt;br&gt;@@ -190,7 +204,8 @@
&lt;br&gt;&amp;nbsp;			target.put(query, row);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;-		public void recordExecution(T query, boolean cached) {
&lt;br&gt;+		public void recordExecution(T query) {
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;boolean cached = (astats.containsKey(query));
&lt;br&gt;&amp;nbsp;			addSample(query, READ);
&lt;br&gt;&amp;nbsp;			if (cached)
&lt;br&gt;&amp;nbsp;				addSample(query, HIT);
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StoreQuery.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StoreQuery.java?rev=790676&amp;r1=790675&amp;r2=790676&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StoreQuery.java (original)
&lt;br&gt;+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StoreQuery.java Thu Jul &amp;nbsp;2 16:57:17 2009
&lt;br&gt;@@ -26,6 +26,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.AggregateListener;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.Constant;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.kernel.exps.FilterListener;
&lt;br&gt;+import org.apache.openjpa.kernel.exps.QueryExpressions;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.lib.rop.ResultObjectProvider;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.ClassMetaData;
&lt;br&gt;&amp;nbsp;import org.apache.openjpa.meta.FieldMetaData;
&lt;br&gt;@@ -335,5 +336,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * {@link Constant}s, in cases where this query is for a bulk update.
&lt;br&gt;&amp;nbsp;	 	 */
&lt;br&gt;&amp;nbsp;		public Map getUpdates (StoreQuery q);
&lt;br&gt;+		
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Return the parsed query expressions for our candidate types.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * The expressions are available only after query has been parsed.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @since 2.0.0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+		public QueryExpressions[] getQueryExpressions();
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/QueryExpressions.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.ap