You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2012/05/20 21:26:21 UTC

svn commit: r1340808 - in /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa: jdbc/oracle/ persistence/distinctjoin/

Author: struberg
Date: Sun May 20 19:26:21 2012
New Revision: 1340808

URL: http://svn.apache.org/viewvc?rev=1340808&view=rev
Log:
OPENJPA-2179 improve test and move to general 

Sadly I experienced that this not only happens with Oracle
but also on hsqldb, mysql and most probably any other.

Added:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Course.java   (contents, props changed)
      - copied, changed from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Course.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Lecturer.java   (contents, props changed)
      - copied, changed from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Lecturer.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/LocalizedText.java   (contents, props changed)
      - copied, changed from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/SomeEmbeddable.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/TestDistinctJoin.java   (contents, props changed)
      - copied, changed from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/TestOracleDistinctJoin.java
Removed:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Course.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Lecturer.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/SomeEmbeddable.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/TestOracleDistinctJoin.java

Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Course.java (from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Course.java)
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Course.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Course.java&p1=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Course.java&r1=1339492&r2=1340808&rev=1340808&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Course.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Course.java Sun May 20 19:26:21 2012
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.jdbc.oracle;
+package org.apache.openjpa.persistence.distinctjoin;
 
 import javax.persistence.AttributeOverride;
 import javax.persistence.AttributeOverrides;
@@ -59,9 +59,14 @@ public class Course implements Serializa
 
 
     @Embedded
-    @AttributeOverrides({@AttributeOverride(name = "valA", column = @Column(name = "objectiveDe")),
-                         @AttributeOverride(name = "valB", column = @Column(name = "objectiveEn"))})
-    private SomeEmbeddable anEmbeddable;
+    @AttributeOverrides({@AttributeOverride(name = "textDe", column = @Column(name = "objectiveDe")),
+                         @AttributeOverride(name = "textEn", column = @Column(name = "objectiveEn"))})
+    private LocalizedText objective;
+
+    @Embedded
+    @AttributeOverrides({@AttributeOverride(name = "textDe", column = @Column(name = "titleDe")),
+            @AttributeOverride(name = "textEn", column = @Column(name = "titleEn"))})
+    private LocalizedText title;
 
 
     @Lob
@@ -86,13 +91,20 @@ public class Course implements Serializa
         this.courseNumber = courseNumber;
     }
 
+    public LocalizedText getObjective() {
+        return objective;
+    }
+
+    public void setObjective(LocalizedText objective) {
+        this.objective = objective;
+    }
 
-    public SomeEmbeddable getAnEmbeddable() {
-        return anEmbeddable;
+    public LocalizedText getTitle() {
+        return title;
     }
 
-    public void setAnEmbeddable(SomeEmbeddable anEmbeddable) {
-        this.anEmbeddable = anEmbeddable;
+    public void setTitle(LocalizedText title) {
+        this.title = title;
     }
 
     public String getLobColumn() {

Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Course.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Lecturer.java (from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Lecturer.java)
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Lecturer.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Lecturer.java&p1=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Lecturer.java&r1=1339492&r2=1340808&rev=1340808&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/Lecturer.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Lecturer.java Sun May 20 19:26:21 2012
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.jdbc.oracle;
+package org.apache.openjpa.persistence.distinctjoin;
 
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;

Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/Lecturer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/LocalizedText.java (from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/SomeEmbeddable.java)
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/LocalizedText.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/LocalizedText.java&p1=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/SomeEmbeddable.java&r1=1339492&r2=1340808&rev=1340808&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/SomeEmbeddable.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/LocalizedText.java Sun May 20 19:26:21 2012
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.jdbc.oracle;
+package org.apache.openjpa.persistence.distinctjoin;
 
 import javax.persistence.Embeddable;
 import javax.persistence.Lob;
@@ -27,26 +27,31 @@ import javax.persistence.Lob;
  * single sub selects for each Embedded field in Oracle.
  */
 @Embeddable
-public class SomeEmbeddable {
+public class LocalizedText {
     @Lob
-    String valA;
+    String textEn;
 
     @Lob
-    String valB;
+    String textDe;
 
-    public String getValA() {
-        return valA;
+    public LocalizedText() {
+        System.out.println("Just for having a debug breakpoint...");
     }
 
-    public void setValA(String valA) {
-        this.valA = valA;
+
+    public String getTextDe() {
+        return textDe;
+    }
+
+    public void setTextDe(String textDe) {
+        this.textDe = textDe;
     }
 
-    public String getValB() {
-        return valB;
+    public String getTextEn() {
+        return textEn;
     }
 
-    public void setValB(String valB) {
-        this.valB = valB;
+    public void setTextEn(String textEn) {
+        this.textEn = textEn;
     }
 }

Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/LocalizedText.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/TestDistinctJoin.java (from r1339492, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/TestOracleDistinctJoin.java)
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/TestDistinctJoin.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/TestDistinctJoin.java&p1=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/TestOracleDistinctJoin.java&r1=1339492&r2=1340808&rev=1340808&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/oracle/TestOracleDistinctJoin.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/TestDistinctJoin.java Sun May 20 19:26:21 2012
@@ -16,20 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.openjpa.jdbc.oracle;
+package org.apache.openjpa.persistence.distinctjoin;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityTransaction;
 import javax.persistence.Query;
-import javax.sql.DataSource;
-import java.sql.Connection;
 import java.sql.SQLException;
-import java.sql.Statement;
 import java.util.List;
 
-import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
-import org.apache.openjpa.jdbc.sql.DBDictionary;
-import org.apache.openjpa.jdbc.sql.OracleDictionary;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
 import org.apache.openjpa.persistence.test.AbstractPersistenceTestCase;
@@ -53,26 +47,16 @@ import org.apache.openjpa.persistence.te
  * Of course you need to set the correct IP address, username and password of your Oracle server.
  * This also assumes that you have downloaded the oracle JDBC driver and locally installed it to maven.
  */
-public class TestOracleDistinctJoin extends AbstractPersistenceTestCase {
+public class TestDistinctJoin extends AbstractPersistenceTestCase {
 
     private static String projectStr = "project";
 
     private Log log;
 
-    private boolean skipTest(DBDictionary dict) {
-        return !(dict instanceof OracleDictionary);
-    }
 
     public void setUp() throws SQLException {
         OpenJPAEntityManagerFactorySPI emf = createEMF();
 
-        JDBCConfiguration conf = ((JDBCConfiguration) emf.getConfiguration());
-        DBDictionary dict = conf.getDBDictionaryInstance();
-
-        if (skipTest(dict)) {
-            emf.close();
-            return;
-        }
         log = emf.getConfiguration().getLog("Tests");
 
         emf.close();
@@ -80,21 +64,13 @@ public class TestOracleDistinctJoin exte
 
     public void testJoinOnly() throws SQLException {
         OpenJPAEntityManagerFactorySPI emf =
-            createEMF(Course.class, Lecturer.class, SomeEmbeddable.class,
+            createEMF(Course.class, Lecturer.class, LocalizedText.class,
                 "openjpa.jdbc.SchemaFactory", "native",
                 "openjpa.jdbc.SynchronizeMappings",  "buildSchema(ForeignKeys=true)",
                 "openjpa.jdbc.QuerySQLCache", "false",
                 "openjpa.DataCache", "false" );
 
-        JDBCConfiguration conf = ((JDBCConfiguration) emf.getConfiguration());
-        DBDictionary dict = conf.getDBDictionaryInstance();
-
-        if (skipTest(dict)) {
-            emf.close();
-            return;
-        }
-
-        Long id = null;
+        Long id;
 
         {
             EntityManager em = emf.createEntityManager();
@@ -113,10 +89,16 @@ public class TestOracleDistinctJoin exte
             tran.begin();
 
             Course course = new Course();
-            SomeEmbeddable emb = new SomeEmbeddable();
-            emb.setValA("a");
-            emb.setValB("b");
-            course.setAnEmbeddable(emb);
+            LocalizedText objective = new LocalizedText();
+            objective.setTextDe("de-objective");
+            objective.setTextEn("en-objective");
+            course.setObjective(objective);
+
+            LocalizedText title = new LocalizedText();
+            title.setTextDe("title-de");
+            title.setTextEn("title-en");
+            course.setObjective(title);
+
             course.setLobColumn("oh this could be a very looooong text...");
             course.setCourseNumber("4711");
 

Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/distinctjoin/TestDistinctJoin.java
------------------------------------------------------------------------------
    svn:eol-style = native