Repository: cayenne
Updated Branches:
  refs/heads/master a9f43dbed -> 3ac0046b4


fix tests for oracle, fix loading relationships for oracle


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3ac0046b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3ac0046b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3ac0046b

Branch: refs/heads/master
Commit: 3ac0046b4bb785b04c34caebd3ed1d7cfef42e90
Parents: a9f43db
Author: kolonitsky <alex.kolonit...@gmail.com>
Authored: Mon Feb 16 15:49:33 2015 +0300
Committer: kolonitsky <alex.kolonit...@gmail.com>
Committed: Mon Feb 16 15:49:33 2015 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/access/DbLoader.java     |  16 +++
 .../cayenne/dba/oracle/OracleAdapter.java       |  40 ++----
 .../apache/cayenne/map/naming/ExportedKey.java  |  52 ++++++-
 .../org/apache/cayenne/access/DbLoaderIT.java   |   9 +-
 .../org/apache/cayenne/query/SQLSelectIT.java   | 136 +++++++++----------
 .../org/apache/cayenne/query/SelectQueryIT.java |   5 +-
 6 files changed, 150 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/3ac0046b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
index 07b674c..27007e8 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
@@ -43,6 +43,7 @@ import org.apache.cayenne.map.naming.LegacyNameGenerator;
 import org.apache.cayenne.map.naming.NameCheckers;
 import org.apache.cayenne.map.naming.ObjectNameGenerator;
 import org.apache.cayenne.util.EntityMergeSupport;
+import org.apache.cayenne.util.EqualsBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -527,6 +528,21 @@ public class DbLoader {
                     continue;
                 }
 
+                if (!new EqualsBuilder()
+                        .append(pkEntity.getCatalog(), key.pkCatalog)
+                        .append(pkEntity.getSchema(), key.pkSchema)
+                        .append(fkEntity.getCatalog(), key.fkCatalog)
+                        .append(fkEntity.getSchema(), key.fkSchema)
+                        .isEquals()) {
+
+                    LOGGER.info("Skip relation: '" + key + "' because it 
related to objects from other catalog/schema");
+                    LOGGER.info("     relation primary key: '" + key.pkCatalog 
+ "." + key.pkSchema + "'");
+                    LOGGER.info("       primary key entity: '" + 
pkEntity.getCatalog() + "." + pkEntity.getSchema() + "'");
+                    LOGGER.info("     relation foreign key: '" + key.fkCatalog 
+ "." + key.fkSchema + "'");
+                    LOGGER.info("       foreign key entity: '" + 
fkEntity.getCatalog() + "." + fkEntity.getSchema() + "'");
+                    continue;
+                }
+
                 // forwardRelationship is a reference from table with primary 
key
                 DbRelationship forwardRelationship = new 
DbRelationship(generateName(pkEntity, key, true));
                 forwardRelationship.setSourceEntity(pkEntity);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3ac0046b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
index f810753..50d621c 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
@@ -71,6 +71,7 @@ public class OracleAdapter extends JdbcAdapter {
     public static final String ORACLE_FLOAT = "FLOAT";
     public static final String ORACLE_BLOB = "BLOB";
     public static final String ORACLE_CLOB = "CLOB";
+    public static final String ORACLE_NCLOB = "NCLOB";
 
     public static final String TRIM_FUNCTION = "RTRIM";
     public static final String NEW_CLOB_FUNCTION = "EMPTY_CLOB()";
@@ -220,12 +221,8 @@ public class OracleAdapter extends JdbcAdapter {
      */
     @Override
     public Collection<String> dropTableStatements(DbEntity table) {
-        QuotingStrategy context = getQuotingStrategy();
-        StringBuffer buf = new StringBuffer("DROP TABLE ");
-        buf.append(context.quotedFullyQualifiedName(table));
-
-        buf.append(" CASCADE CONSTRAINTS");
-        return Collections.singleton(buf.toString());
+        return Collections.singleton("DROP TABLE " + 
getQuotingStrategy().quotedFullyQualifiedName(table)
+                + " CASCADE CONSTRAINTS");
     }
 
     @Override
@@ -253,40 +250,25 @@ public class OracleAdapter extends JdbcAdapter {
      * and has non-positive precision it is converted to INTEGER.
      */
     @Override
-    public DbAttribute buildAttribute(
-            String name,
-            String typeName,
-            int type,
-            int size,
-            int scale,
-            boolean allowNulls) {
-
-        DbAttribute attr = super.buildAttribute(
-                name,
-                typeName,
-                type,
-                size,
-                scale,
-                allowNulls);
+    public DbAttribute buildAttribute(String name, String typeName, int type, 
int size, int scale, boolean allowNulls) {
+        DbAttribute attr = super.buildAttribute(name, typeName, type, size, 
scale, allowNulls);
 
         if (type == Types.DECIMAL && scale <= 0) {
             attr.setType(Types.INTEGER);
             attr.setScale(-1);
-        }
-        else if (type == Types.OTHER) {
+        } else if (type == Types.OTHER) {
             // in this case we need to guess the attribute type
             // based on its string value
             if (ORACLE_FLOAT.equals(typeName)) {
                 attr.setType(Types.FLOAT);
-            }
-            else if (ORACLE_BLOB.equals(typeName)) {
+            } else if (ORACLE_BLOB.equals(typeName)) {
                 attr.setType(Types.BLOB);
-            }
-            else if (ORACLE_CLOB.equals(typeName)) {
+            } else if (ORACLE_CLOB.equals(typeName)) {
                 attr.setType(Types.CLOB);
+            } else if (ORACLE_NCLOB.equals(typeName)) {
+                attr.setType(Types.NCLOB);
             }
-        }
-        else if (type == Types.DATE) {
+        } else if (type == Types.DATE) {
             // Oracle DATE can store JDBC TIMESTAMP
             if ("DATE".equals(typeName)) {
                 attr.setType(Types.TIMESTAMP);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3ac0046b/cayenne-server/src/main/java/org/apache/cayenne/map/naming/ExportedKey.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/map/naming/ExportedKey.java 
b/cayenne-server/src/main/java/org/apache/cayenne/map/naming/ExportedKey.java
index ab8229f..9a415d8 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/map/naming/ExportedKey.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/map/naming/ExportedKey.java
@@ -44,6 +44,9 @@ import java.sql.SQLException;
  * 
  */
 public class ExportedKey implements Comparable {
+
+    public final String pkCatalog;
+    public final String pkSchema;
     /**
      * Name of source table
      */
@@ -54,6 +57,8 @@ public class ExportedKey implements Comparable {
      */
     public final String pkColumn;
 
+    public final String fkCatalog;
+    public final String fkSchema;
     /**
      * Name of destination table
      */
@@ -79,9 +84,18 @@ public class ExportedKey implements Comparable {
 
     public ExportedKey(String pkTable, String pkColumn, String pkName,
                        String fkTable, String fkColumn, String fkName, short 
keySeq) {
+        this(null, null, pkTable, pkColumn, pkName, null, null, fkTable, 
fkColumn, fkName, keySeq);
+    }
+
+    public ExportedKey(String pkCatalog, String pkSchema, String pkTable, 
String pkColumn, String pkName,
+                       String fkCatalog, String fkSchema, String fkTable, 
String fkColumn, String fkName, short keySeq) {
+       this.pkCatalog  = pkCatalog;
+       this.pkSchema  = pkSchema;
        this.pkTable  = pkTable;
        this.pkColumn = pkColumn;
        this.pkName   = pkName;
+       this.fkCatalog  = fkCatalog;
+       this.fkSchema  = fkSchema;
        this.fkTable  = fkTable;
        this.fkColumn = fkColumn;
        this.fkName   = fkName;
@@ -97,16 +111,37 @@ public class ExportedKey implements Comparable {
      */
     public static ExportedKey extractData(ResultSet rs) throws SQLException {
         return new ExportedKey(
+                rs.getString("PKTABLE_CAT"),
+                rs.getString("PKTABLE_SCHEM"),
                 rs.getString("PKTABLE_NAME"),
                 rs.getString("PKCOLUMN_NAME"),
                 rs.getString("PK_NAME"),
+                rs.getString("FKTABLE_CAT"),
+                rs.getString("FKTABLE_SCHEM"),
                 rs.getString("FKTABLE_NAME"),
                 rs.getString("FKCOLUMN_NAME"),
                 rs.getString("FK_NAME"),
                 rs.getShort("KEY_SEQ")
         );
     }
-    
+
+
+    public String getPkCatalog() {
+        return pkCatalog;
+    }
+
+    public String getPkSchema() {
+        return pkSchema;
+    }
+
+    public String getFkCatalog() {
+        return fkCatalog;
+    }
+
+    public String getFkSchema() {
+        return fkSchema;
+    }
+
     /**
      * @return source table name
      */
@@ -167,8 +202,12 @@ public class ExportedKey implements Comparable {
         }
         ExportedKey rhs = (ExportedKey) obj;
         return new EqualsBuilder()
+                .append(this.pkCatalog, rhs.pkCatalog)
+                .append(this.pkSchema, rhs.pkSchema)
                 .append(this.pkTable, rhs.pkTable)
                 .append(this.pkColumn, rhs.pkColumn)
+                .append(this.fkCatalog, rhs.fkCatalog)
+                .append(this.fkSchema, rhs.fkSchema)
                 .append(this.fkTable, rhs.fkTable)
                 .append(this.fkColumn, rhs.fkColumn)
                 .append(this.fkName, rhs.fkName)
@@ -180,8 +219,12 @@ public class ExportedKey implements Comparable {
     @Override
     public int hashCode() {
         return new HashCodeBuilder()
+                .append(pkCatalog)
+                .append(pkSchema)
                 .append(pkTable)
                 .append(pkColumn)
+                .append(fkCatalog)
+                .append(fkSchema)
                 .append(fkTable)
                 .append(fkColumn)
                 .append(fkName)
@@ -201,8 +244,12 @@ public class ExportedKey implements Comparable {
 
         ExportedKey rhs = (ExportedKey) obj;
         return new CompareToBuilder()
+                .append(pkCatalog, rhs.pkCatalog)
+                .append(pkSchema, rhs.pkSchema)
                 .append(pkTable, rhs.pkTable)
                 .append(pkName, rhs.pkName)
+                .append(fkCatalog, rhs.fkCatalog)
+                .append(fkSchema, rhs.fkSchema)
                 .append(fkTable, rhs.fkTable)
                 .append(fkName, rhs.fkName)
                 .append(keySeq, rhs.keySeq)
@@ -217,6 +264,7 @@ public class ExportedKey implements Comparable {
     }
 
     public String getStrKey() {
-        return pkTable + "." + pkColumn + " <- " + fkTable + "." + fkColumn;
+        return pkCatalog + "." + pkSchema + "." + pkTable + "." + pkColumn
+                + " <- " + fkCatalog + "." + fkSchema + "." + fkTable + "." + 
fkColumn;
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3ac0046b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
index 206c3aa..a9fccc4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
@@ -41,10 +41,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static org.junit.Assert.*;
 
@@ -243,8 +240,8 @@ public class DbLoaderIT extends ServerCase {
         assertFalse(a.isGenerated());
 
         if (adapter.supportsGeneratedKeys()) {
-            DbEntity bag = getDbEntity(map, "BAG");
-            DbAttribute id = bag.getAttribute("ID");
+            DbEntity bag = getDbEntity(map, "GENERATED_COLUMN_TEST");
+            DbAttribute id = bag.getAttribute("GENERATED_COLUMN");
             assertTrue(id.isPrimaryKey());
             assertTrue(id.isGenerated());
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3ac0046b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java 
b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
index 5f05546..155eff4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import java.sql.Date;
+import java.sql.Types;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -32,7 +32,7 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -48,28 +48,28 @@ public class SQLSelectIT extends ServerCase {
        @Inject
        private DBHelper dbHelper;
 
-       private TableHelper tArtist;
+       private TableHelper tPainting;
 
        @Before
        public void before() {
-               tArtist = new TableHelper(dbHelper, 
"ARTIST").setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");
-       }
-
-       protected void createArtistsDataSet() throws Exception {
-
-               long dateBase = System.currentTimeMillis();
 
-               for (int i = 1; i <= 20; i++) {
-                       tArtist.insert(i, "artist" + i, new 
java.sql.Date(dateBase + 10000 * i));
-               }
+               tPainting = new TableHelper(dbHelper, "PAINTING")
+                .setColumns("PAINTING_ID", "PAINTING_TITLE", "ESTIMATED_PRICE")
+                .setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.DECIMAL);
        }
 
+    protected void createArtistsDataSet() throws Exception {
+        for (int i = 1; i <= 20; i++) {
+            tPainting.insert(i, "painting" + i, 10000. * i);
+        }
+    }
+
        @Test
        public void test_DataRows_DataMapNameRoot() throws Exception {
 
                createArtistsDataSet();
 
-               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("testmap", 
"SELECT * FROM ARTIST");
+               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("testmap", 
"SELECT * FROM PAINTING");
                assertTrue(q1.isFetchingDataRows());
 
                List<DataRow> result = context.select(q1);
@@ -82,7 +82,7 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
ARTIST");
+               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
PAINTING");
                assertTrue(q1.isFetchingDataRows());
 
                List<DataRow> result = context.select(q1);
@@ -95,11 +95,11 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<Artist> q1 = SQLSelect.query(Artist.class, "SELECT * 
FROM ARTIST").columnNameCaps(CapsStrategy.UPPER);
+               SQLSelect<Painting> q1 = SQLSelect.query(Painting.class, 
"SELECT * FROM PAINTING").columnNameCaps(CapsStrategy.UPPER);
                assertFalse(q1.isFetchingDataRows());
-               List<Artist> result = context.select(q1);
+               List<Painting> result = context.select(q1);
                assertEquals(20, result.size());
-               assertTrue(result.get(0) instanceof Artist);
+               assertTrue(result.get(0) instanceof Painting);
        }
 
        @Test
@@ -107,12 +107,12 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<Artist> q1 = SQLSelect.query(Artist.class, "SELECT * 
FROM ARTIST WHERE ARTIST_NAME = #bind($a)");
-               q1.params("a", "artist3").columnNameCaps(CapsStrategy.UPPER);
+               SQLSelect<Painting> q1 = SQLSelect.query(Painting.class, 
"SELECT * FROM PAINTING WHERE PAINTING_TITLE = #bind($a)");
+               q1.params("a", "painting3").columnNameCaps(CapsStrategy.UPPER);
 
                assertFalse(q1.isFetchingDataRows());
-               Artist a = context.selectOne(q1);
-               assertEquals("artist3", a.getArtistName());
+        Painting a = context.selectOne(q1);
+               assertEquals("painting3", a.getPaintingTitle());
        }
 
        @Test
@@ -120,18 +120,18 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<Artist> q1 = SQLSelect.query(Artist.class,
-                               "SELECT * FROM ARTIST WHERE ARTIST_NAME = 
#bind($a) OR ARTIST_NAME = #bind($b)").columnNameCaps(CapsStrategy.UPPER);
-               q1.params("a", "artist3").params("b", "artist4");
+               SQLSelect<Painting> q1 = SQLSelect.query(Painting.class,
+                               "SELECT * FROM PAINTING WHERE PAINTING_TITLE = 
#bind($a) OR PAINTING_TITLE = #bind($b)").columnNameCaps(CapsStrategy.UPPER);
+               q1.params("a", "painting3").params("b", "painting4");
 
-               List<Artist> result = context.select(q1);
+               List<Painting> result = context.select(q1);
                assertEquals(2, result.size());
        }
 
        @Test
        public void test_DataRows_ColumnNameCaps() throws Exception {
 
-               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
ARTIST WHERE ARTIST_NAME = 'artist2'");
+               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
PAINTING WHERE PAINTING_TITLE = 'painting2'");
                q1.upperColumnNames();
 
                SQLTemplate r1 = (SQLTemplate) 
q1.getReplacementQuery(context.getEntityResolver());
@@ -147,7 +147,7 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
ARTIST");
+               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
PAINTING");
                q1.limit(5);
 
                assertEquals(5, context.select(q1).size());
@@ -158,7 +158,7 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
ARTIST");
+               SQLSelect<DataRow> q1 = SQLSelect.dataRowQuery("SELECT * FROM 
PAINTING");
                q1.offset(4);
 
                assertEquals(16, context.select(q1).size());
@@ -169,10 +169,10 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               SQLSelect<Artist> q1 = SQLSelect.query(Artist.class, "SELECT * 
FROM ARTIST")
-                               .append(" WHERE ARTIST_NAME = 
#bind($a)").params("a", "artist3").columnNameCaps(CapsStrategy.UPPER);
+               SQLSelect<Painting> q1 = SQLSelect.query(Painting.class, 
"SELECT * FROM PAINTING")
+                               .append(" WHERE PAINTING_TITLE = 
#bind($a)").params("a", "painting3").columnNameCaps(CapsStrategy.UPPER);
 
-               List<Artist> result = context.select(q1);
+               List<Painting> result = context.select(q1);
                assertEquals(1, result.size());
        }
 
@@ -181,8 +181,8 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               List<Artist> result = SQLSelect.query(Artist.class, "SELECT * 
FROM ARTIST WHERE ARTIST_NAME = #bind($a)")
-                               .params("a", 
"artist3").columnNameCaps(CapsStrategy.UPPER).select(context);
+               List<Painting> result = SQLSelect.query(Painting.class, "SELECT 
* FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
+                               .params("a", 
"painting3").columnNameCaps(CapsStrategy.UPPER).select(context);
 
                assertEquals(1, result.size());
        }
@@ -192,10 +192,10 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               Artist a = SQLSelect.query(Artist.class, "SELECT * FROM ARTIST 
WHERE ARTIST_NAME = #bind($a)")
-                               .params("a", 
"artist3").columnNameCaps(CapsStrategy.UPPER).selectOne(context);
+        Painting a = SQLSelect.query(Painting.class, "SELECT * FROM PAINTING 
WHERE PAINTING_TITLE = #bind($a)")
+                               .params("a", 
"painting3").columnNameCaps(CapsStrategy.UPPER).selectOne(context);
 
-               assertEquals("artist3", a.getArtistName());
+               assertEquals("painting3", a.getPaintingTitle());
        }
 
        @Test
@@ -203,8 +203,8 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               long id = SQLSelect.scalarQuery(Long.class, "SELECT ARTIST_ID 
FROM ARTIST WHERE ARTIST_NAME = #bind($a)")
-                               .params("a", "artist3").selectOne(context);
+               long id = SQLSelect.scalarQuery(Integer.class, "SELECT 
PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
+                               .params("a", "painting3").selectOne(context);
 
                assertEquals(3l, id);
        }
@@ -214,11 +214,11 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               List<Long> ids = SQLSelect.scalarQuery(Long.class, "SELECT 
ARTIST_ID FROM ARTIST ORDER BY ARTIST_ID").select(
+               List<Integer> ids = SQLSelect.scalarQuery(Integer.class, 
"SELECT PAINTING_ID FROM PAINTING ORDER BY PAINTING_ID").select(
                                context);
 
                assertEquals(20, ids.size());
-               assertEquals(2l, ids.get(1).longValue());
+               assertEquals(2l, ids.get(1).intValue());
        }
 
        @Test
@@ -226,7 +226,7 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               int c = SQLSelect.scalarQuery(Integer.class, "SELECT 
#result('COUNT(*)' 'int') FROM ARTIST").selectOne(context);
+               int c = SQLSelect.scalarQuery(Integer.class, "SELECT 
#result('COUNT(*)' 'int') FROM PAINTING").selectOne(context);
 
                assertEquals(20, c);
        }
@@ -236,10 +236,10 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               Long id = SQLSelect.scalarQuery(Long.class, "SELECT ARTIST_ID 
FROM ARTIST WHERE ARTIST_NAME = #bind($a)")
-                               .paramsArray("artist3").selectOne(context);
+        Integer id = SQLSelect.scalarQuery(Integer.class, "SELECT PAINTING_ID 
FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
+                               .paramsArray("painting3").selectOne(context);
 
-               assertEquals(3l, id.longValue());
+               assertEquals(3l, id.intValue());
        }
 
        @Test
@@ -247,30 +247,28 @@ public class SQLSelectIT extends ServerCase {
 
                createArtistsDataSet();
 
-               List<Long> ids = SQLSelect
-                               .scalarQuery(Long.class,
-                                               "SELECT ARTIST_ID FROM ARTIST 
WHERE ARTIST_NAME = #bind($a) OR ARTIST_NAME = #bind($b) ORDER BY ARTIST_ID")
-                               .paramsArray("artist3", 
"artist2").select(context);
+               List<Integer> ids = SQLSelect
+                               .scalarQuery(Integer.class,
+                                               "SELECT PAINTING_ID FROM 
PAINTING WHERE PAINTING_TITLE = #bind($a) OR PAINTING_TITLE = #bind($b) ORDER 
BY PAINTING_ID")
+                               .paramsArray("painting3", 
"painting2").select(context);
 
-               assertEquals(2l, ids.get(0).longValue());
-               assertEquals(3l, ids.get(1).longValue());
+               assertEquals(2l, ids.get(0).intValue());
+               assertEquals(3l, ids.get(1).intValue());
        }
 
        @Test
        public void test_ParamsArray_Multiple_OptionalChunks() throws Exception 
{
 
-               Date dob = new java.sql.Date(System.currentTimeMillis());
-
-               tArtist.insert(1, "artist1", dob);
-               tArtist.insert(2, "artist2", null);
+               tPainting.insert(1, "painting1", 1.0);
+               tPainting.insert(2, "painting2", null);
 
-               List<Long> ids = SQLSelect
+               List<Integer> ids = SQLSelect
                                .scalarQuery(
-                                               Long.class,
-                                               "SELECT ARTIST_ID FROM ARTIST 
#chain('OR' 'WHERE') "
-                                                               + "#chunk($a) 
DATE_OF_BIRTH #bindEqual($a) #end "
-                                                               + "#chunk($b) 
ARTIST_NAME #bindEqual($b) #end #end ORDER BY ARTIST_ID")
-                               .paramsArray(null, "artist1").select(context);
+                                               Integer.class,
+                                               "SELECT PAINTING_ID FROM 
PAINTING #chain('OR' 'WHERE') "
+                                                               + "#chunk($a) 
ESTIMATED_PRICE #bindEqual($a) #end "
+                                                               + "#chunk($b) 
PAINTING_TITLE #bindEqual($b) #end #end ORDER BY PAINTING_ID")
+                               .paramsArray(null, "painting1").select(context);
 
                assertEquals(1, ids.size());
                assertEquals(1l, ids.get(0).longValue());
@@ -279,21 +277,19 @@ public class SQLSelectIT extends ServerCase {
        @Test
        public void test_Params_Multiple_OptionalChunks() throws Exception {
 
-               Date dob = new java.sql.Date(System.currentTimeMillis());
-
-               tArtist.insert(1, "artist1", dob);
-               tArtist.insert(2, "artist2", null);
+               tPainting.insert(1, "painting1", 1.0);
+               tPainting.insert(2, "painting2", null);
 
                Map<String, Object> params = new HashMap<String, Object>();
                params.put("a", null);
-               params.put("b", "artist1");
+               params.put("b", "painting1");
 
-               List<Long> ids = SQLSelect
+               List<Integer> ids = SQLSelect
                                .scalarQuery(
-                                               Long.class,
-                                               "SELECT ARTIST_ID FROM ARTIST 
#chain('OR' 'WHERE') "
-                                                               + "#chunk($a) 
DATE_OF_BIRTH #bindEqual($a) #end "
-                                                               + "#chunk($b) 
ARTIST_NAME #bindEqual($b) #end #end ORDER BY ARTIST_ID").params(params)
+                        Integer.class,
+                                               "SELECT PAINTING_ID FROM 
PAINTING #chain('OR' 'WHERE') "
+                                                               + "#chunk($a) 
ESTIMATED_PRICE #bindEqual($a) #end "
+                                                               + "#chunk($b) 
PAINTING_TITLE #bindEqual($b) #end #end ORDER BY PAINTING_ID").params(params)
                                .select(context);
 
                assertEquals(1, ids.size());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3ac0046b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java 
b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
index 7911419..9becc33 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import java.sql.Types;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -70,7 +71,9 @@ public class SelectQueryIT extends ServerCase {
 
        @Before
        public void before() {
-               this.tArtist = new TableHelper(dbHelper, 
"ARTIST").setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");
+               this.tArtist = new TableHelper(dbHelper, "ARTIST")
+                .setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH")
+                .setColumnTypes(Types.BIGINT, Types.CHAR, Types.DATE);
        }
 
        protected void createArtistsDataSet() throws Exception {

Reply via email to