# IGNITE-32 Fixed db dialects.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6144c613 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6144c613 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6144c613 Branch: refs/heads/ignite-160 Commit: 6144c6130d140a5e9c038eea014706eb382c0b1a Parents: 7e062cb Author: AKuznetsov <akuznet...@gridgain.com> Authored: Wed Feb 4 18:06:47 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Wed Feb 4 18:06:47 2015 +0700 ---------------------------------------------------------------------- .../ignite/cache/store/jdbc/JdbcCacheStore.java | 44 +++++-- .../cache/store/jdbc/JdbcPojoCacheStore.java | 49 ++++++- .../cache/store/jdbc/dialect/OracleDialect.java | 6 +- .../store/jdbc/dialect/SQLServerDialect.java | 2 +- .../core/src/test/config/store/jdbc/Ignite.xml | 2 +- .../store/jdbc/PojoJdbcCacheStoreTest.java | 100 +++++++++++++-- .../apache/ignite/schema/load/model/Ignite.xml | 128 +++++++++---------- 7 files changed, 233 insertions(+), 98 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java index 5537965..29ca25d 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java @@ -38,6 +38,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.concurrent.locks.*; +import static java.sql.Statement.*; + /** * Base {@link CacheStore} implementation backed by JDBC. This implementation stores objects in underlying database * using mapping description. @@ -649,9 +651,9 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L nested = nested.getNextException(); } - // The error with code 23505 is thrown when trying to insert a row that + // The error with code 23505 or 23000 is thrown when trying to insert a row that // would violate a unique index or primary key. - if (sqlState != null && Integer.valueOf(sqlState) == 23505) { + if ("23505".equals(sqlState) || "23000".equals(sqlState)) { if (we == null) we = new CacheWriterException("Failed insert entry in database, violate a unique" + " index or primary key [table=" + em.fullTableName() + ", entry=" + entry + "]"); @@ -903,24 +905,40 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L */ private void executeBatch(EntryMapping em, Statement stmt, String desc, int fromIdx, int prepared, LazyValue<Object[]> lazyObjs) throws SQLException { - int[] rowCounts = stmt.executeBatch(); + try { + int[] rowCounts = stmt.executeBatch(); - int numOfRowCnt = rowCounts.length; + int numOfRowCnt = rowCounts.length; - if (numOfRowCnt != prepared) - U.warn(log, "Unexpected number of updated rows [table=" + em.fullTableName() + ", expected=" + prepared + - ", actual=" + numOfRowCnt + "]"); + if (numOfRowCnt != prepared) + U.warn(log, "Unexpected number of updated rows [table=" + em.fullTableName() + ", expected=" + prepared + + ", actual=" + numOfRowCnt + "]"); - for (int i = 0; i < numOfRowCnt; i++) { - int cnt = rowCounts[i]; + for (int i = 0; i < numOfRowCnt; i++) { + int cnt = rowCounts[i]; - if (cnt != 1) { - Object[] objs = lazyObjs.value(); + if (cnt != 1 && cnt != SUCCESS_NO_INFO) { + Object[] objs = lazyObjs.value(); - U.warn(log, "Batch " + desc + " returned unexpected updated row count [table=" + em.fullTableName() + - ", entry=" + objs[fromIdx + i] + ", expected=1, actual=" + cnt + "]"); + U.warn(log, "Batch " + desc + " returned unexpected updated row count [table=" + em.fullTableName() + + ", entry=" + objs[fromIdx + i] + ", expected=1, actual=" + cnt + "]"); + } } } + catch (BatchUpdateException be) { + int[] rowCounts = be.getUpdateCounts(); + + for (int i = 0; i < rowCounts.length; i++) { + if (rowCounts[i] == EXECUTE_FAILED) { + Object[] objs = lazyObjs.value(); + + U.warn(log, "Batch " + desc + " failed on execution [table=" + em.fullTableName() + + ", entry=" + objs[fromIdx + i] + "]"); + } + } + + throw be; + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java index 5a8548c..45f8dd9 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java @@ -160,8 +160,53 @@ public class JdbcPojoCacheStore extends JdbcCacheStore<Object, Object> { Object obj = t.newInstance(); try { - for (CacheTypeFieldMetadata field : fields) - t.setters.get(field.getJavaName()).invoke(obj, rs.getObject(field.getDatabaseName())); + for (CacheTypeFieldMetadata field : fields) { + Method setter = t.setters.get(field.getJavaName()); + + Class<?> type = field.getJavaType(); + + String colName = field.getDatabaseName(); + + if (type == boolean.class) + setter.invoke(obj, rs.getBoolean(colName)); + else if (type == byte.class) + setter.invoke(obj, rs.getByte(colName)); + else if (type == short.class) + setter.invoke(obj, rs.getShort(colName)); + else if (type == int.class) + setter.invoke(obj, rs.getInt(colName)); + else if (type == long.class) + setter.invoke(obj, rs.getLong(colName)); + else if (type == float.class) + setter.invoke(obj, rs.getFloat(colName)); + else if (type == double.class) + setter.invoke(obj, rs.getDouble(colName)); + else if (type == Byte.class || type == Short.class || type == Integer.class || + type == Long.class || type == Float.class || type == Double.class) { + Object val = rs.getObject(colName); + + if (val != null) { + Number num = (Number)val; + + if (type == Byte.class) + setter.invoke(obj, num.byteValue()); + else if (type == Short.class) + setter.invoke(obj, num.shortValue()); + else if (type == Integer.class) + setter.invoke(obj, num.intValue()); + else if (type == long.class) + setter.invoke(obj, num.longValue()); + else if (type == float.class) + setter.invoke(obj, num.floatValue()); + else if (type == double.class) + setter.invoke(obj, num.doubleValue()); + } + else + setter.invoke(obj, new Object[]{ null }); + } + else + setter.invoke(obj, rs.getObject(colName)); + } return (R)obj; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java index cc960e8..e85e890 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java @@ -37,7 +37,7 @@ public class OracleDialect extends BasicJdbcDialect { String colsLst = mkString(cols, ", "); - String selCols = mkString(uniqCols, new C1<String, String>() { + String selCols = mkString(cols, new C1<String, String>() { @Override public String apply(String col) { return String.format("? AS %s", col); } @@ -47,7 +47,7 @@ public class OracleDialect extends BasicJdbcDialect { @Override public String apply(String col) { return String.format("t.%s=v.%s", col, col); } - }, "", ", ", ""); + }, "(", " AND ", ")"); String setCols = mkString(uniqCols, new C1<String, String>() { @Override public String apply(String col) { @@ -62,7 +62,7 @@ public class OracleDialect extends BasicJdbcDialect { }, "", ", ", ""); return String.format("MERGE INTO %s.%s t" + - " USING (SELECT %s FROM dual) AS v" + + " USING (SELECT %s FROM dual) v" + " ON %s" + " WHEN MATCHED THEN" + " UPDATE SET %s" + http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java index c3ce64b..df8cef9 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java @@ -61,7 +61,7 @@ public class SQLServerDialect extends BasicJdbcDialect { " WHEN MATCHED THEN" + " UPDATE SET %s" + " WHEN NOT MATCHED THEN" + - " INSERT (%s) VALUES (%s)", schema, tblName, repeat("?", cols.size(), "", ",", ""), colsLst, + " INSERT (%s) VALUES (%s);", schema, tblName, repeat("?", cols.size(), "", ",", ""), colsLst, match, setCols, colsLst, valuesCols); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/core/src/test/config/store/jdbc/Ignite.xml ---------------------------------------------------------------------- diff --git a/modules/core/src/test/config/store/jdbc/Ignite.xml b/modules/core/src/test/config/store/jdbc/Ignite.xml index f0db1a7..a1fc231 100644 --- a/modules/core/src/test/config/store/jdbc/Ignite.xml +++ b/modules/core/src/test/config/store/jdbc/Ignite.xml @@ -20,7 +20,7 @@ --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.springframework.org/schema/beans + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean class="org.apache.ignite.cache.CacheTypeMetadata"> <property name="databaseSchema" value="PUBLIC"/> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java index 63b5b11..e31abaf 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java @@ -38,6 +38,7 @@ import org.springframework.context.support.*; import org.springframework.core.io.*; import javax.cache.*; +import javax.cache.integration.*; import java.io.*; import java.net.*; import java.sql.*; @@ -87,6 +88,19 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest { protected JdbcPojoCacheStore store() throws IgniteCheckedException { JdbcPojoCacheStore store = new JdbcPojoCacheStore(); +// PGPoolingDataSource ds = new PGPoolingDataSource(); +// ds.setUser("postgres"); +// ds.setPassword("1"); +// ds.setServerName("192.168.1.47"); +// ds.setDatabaseName("postgres"); +// store.setDataSource(ds); + +// MysqlDataSource ds = new MysqlDataSource(); +// ds.setURL("jdbc:mysql://192.168.1.12:3306/test"); +// ds.setUser("test"); +// ds.setPassword("1"); +// store.setDataSource(ds); + store.setDataSource(JdbcConnectionPool.create(DFLT_CONN_URL, "sa", "")); return store; @@ -132,7 +146,7 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest { store.prepareBuilders(null, typeMeta); - cacheMappings.put(null, Collections.unmodifiableMap(entryMappings)); + cacheMappings.put(null, entryMappings); GridTestUtils.setFieldValue(store, JdbcCacheStore.class, "cacheMappings", cacheMappings); } @@ -150,10 +164,60 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest { /** * @throws Exception If failed. */ - public void testLoadCache() throws Exception { - Connection conn = DriverManager.getConnection(DFLT_CONN_URL, "sa", ""); + public void testWriteRetry() throws Exception { + BasicJdbcDialect dialect = new BasicJdbcDialect() { + /** {@inheritDoc} */ + @Override public String updateQuery(String schema, String tblName, Collection<String> keyCols, + Iterable<String> valCols) { + return super.updateQuery(schema, tblName, keyCols, valCols) + " AND 1 = 0"; + } + }; - Statement stmt = conn.createStatement(); + store.setDialect(dialect); + + Map<String, Map<Object, JdbcCacheStore.EntryMapping>> cacheMappings = + GridTestUtils.getFieldValue(store, JdbcCacheStore.class, "cacheMappings"); + + JdbcCacheStore.EntryMapping em = cacheMappings.get(null).get(OrganizationKey.class); + + CacheTypeMetadata typeMeta = GridTestUtils.getFieldValue(em, JdbcCacheStore.EntryMapping.class, "typeMeta"); + + cacheMappings.get(null).put(OrganizationKey.class, new JdbcCacheStore.EntryMapping(dialect, typeMeta)); + + Connection conn = store.openConnection(false); + + PreparedStatement orgStmt = conn.prepareStatement("INSERT INTO Organization(id, name, city) VALUES (?, ?, ?)"); + + orgStmt.setInt(1, 1); + orgStmt.setString(2, "name" + 1); + orgStmt.setString(3, "city" + 1); + + orgStmt.executeUpdate(); + + U.closeQuiet(orgStmt); + + conn.commit(); + + OrganizationKey k1 = new OrganizationKey(1); + Organization v1 = new Organization(1, "Name1", "City1"); + + ses.newSession(null); + + try { + store.write(new CacheEntryImpl<>(k1, v1)); + } + catch (CacheWriterException e) { + if (!e.getMessage().startsWith("Failed insert entry in database, violate a unique index or primary key") || + e.getSuppressed().length != 2) + throw e; + } + } + + /** + * @throws Exception If failed. + */ + public void testLoadCache() throws Exception { + Connection conn = store.openConnection(false); PreparedStatement orgStmt = conn.prepareStatement("INSERT INTO Organization(id, name, city) VALUES (?, ?, ?)"); @@ -167,6 +231,8 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest { orgStmt.executeBatch(); + U.closeQuiet(orgStmt); + conn.commit(); PreparedStatement prnStmt = conn.prepareStatement("INSERT INTO Person(id, org_id, name) VALUES (?, ?, ?)"); @@ -183,7 +249,7 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest { conn.commit(); - U.closeQuiet(stmt); + U.closeQuiet(prnStmt); U.closeQuiet(conn); @@ -606,20 +672,26 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest { @Override protected void beforeTest() throws Exception { super.beforeTest(); - Connection conn = DriverManager.getConnection(DFLT_CONN_URL, "sa", ""); + Connection conn = store.openConnection(false); Statement stmt = conn.createStatement(); - stmt.executeUpdate("DROP TABLE IF EXISTS Organization"); - stmt.executeUpdate("DROP TABLE IF EXISTS Person"); + try { + stmt.executeUpdate("delete from Organization"); + } + catch (SQLException ignore) { + // no-op + } - stmt.executeUpdate("CREATE TABLE Organization (id integer PRIMARY KEY, name varchar(50), city varchar(50))"); - stmt.executeUpdate("CREATE TABLE Person (id integer PRIMARY KEY, org_id integer, name varchar(50))"); + try { + stmt.executeUpdate("delete from Person"); + } + catch (SQLException ignore) { + // no-op + } - stmt.executeUpdate("CREATE INDEX Org_Name_IDX On Organization (name)"); - stmt.executeUpdate("CREATE INDEX Org_Name_City_IDX On Organization (name, city)"); - stmt.executeUpdate("CREATE INDEX Person_Name_IDX1 On Person (name)"); - stmt.executeUpdate("CREATE INDEX Person_Name_IDX2 On Person (name desc)"); + stmt.executeUpdate("CREATE TABLE IF NOT EXISTS Organization (id integer not null, name varchar(50), city varchar(50), PRIMARY KEY(id))"); + stmt.executeUpdate("CREATE TABLE IF NOT EXISTS Person (id integer not null, org_id integer, name varchar(50), PRIMARY KEY(id))"); conn.commit(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6144c613/modules/schema-load/src/test/java/org/apache/ignite/schema/load/model/Ignite.xml ---------------------------------------------------------------------- diff --git a/modules/schema-load/src/test/java/org/apache/ignite/schema/load/model/Ignite.xml b/modules/schema-load/src/test/java/org/apache/ignite/schema/load/model/Ignite.xml index bfd5ad4..1e8fda9 100644 --- a/modules/schema-load/src/test/java/org/apache/ignite/schema/load/model/Ignite.xml +++ b/modules/schema-load/src/test/java/org/apache/ignite/schema/load/model/Ignite.xml @@ -30,8 +30,8 @@ <property name="keyFields"> <list> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="PK"/> - <property name="dbType" value="4"/> + <property name="databaseName" value="PK"/> + <property name="databaseType" value="4"/> <property name="javaName" value="pk"/> <property name="javaType" value="int"/> </bean> @@ -40,92 +40,92 @@ <property name="valueFields"> <list> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="PK"/> - <property name="dbType" value="4"/> + <property name="databaseName" value="PK"/> + <property name="databaseType" value="4"/> <property name="javaName" value="pk"/> <property name="javaType" value="int"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="BOOLCOL"/> - <property name="dbType" value="16"/> + <property name="databaseName" value="BOOLCOL"/> + <property name="databaseType" value="16"/> <property name="javaName" value="boolcol"/> <property name="javaType" value="java.lang.Boolean"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="BYTECOL"/> - <property name="dbType" value="-6"/> + <property name="databaseName" value="BYTECOL"/> + <property name="databaseType" value="-6"/> <property name="javaName" value="bytecol"/> <property name="javaType" value="java.lang.Byte"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="SHORTCOL"/> - <property name="dbType" value="5"/> + <property name="databaseName" value="SHORTCOL"/> + <property name="databaseType" value="5"/> <property name="javaName" value="shortcol"/> <property name="javaType" value="java.lang.Short"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="INTCOL"/> - <property name="dbType" value="4"/> + <property name="databaseName" value="INTCOL"/> + <property name="databaseType" value="4"/> <property name="javaName" value="intcol"/> <property name="javaType" value="java.lang.Integer"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="LONGCOL"/> - <property name="dbType" value="-5"/> + <property name="databaseName" value="LONGCOL"/> + <property name="databaseType" value="-5"/> <property name="javaName" value="longcol"/> <property name="javaType" value="java.lang.Long"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="FLOATCOL"/> - <property name="dbType" value="7"/> + <property name="databaseName" value="FLOATCOL"/> + <property name="databaseType" value="7"/> <property name="javaName" value="floatcol"/> <property name="javaType" value="java.lang.Float"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="DOUBLECOL"/> - <property name="dbType" value="8"/> + <property name="databaseName" value="DOUBLECOL"/> + <property name="databaseType" value="8"/> <property name="javaName" value="doublecol"/> <property name="javaType" value="java.lang.Double"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="DOUBLECOL2"/> - <property name="dbType" value="8"/> + <property name="databaseName" value="DOUBLECOL2"/> + <property name="databaseType" value="8"/> <property name="javaName" value="doublecol2"/> <property name="javaType" value="java.lang.Double"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="BIGDECIMALCOL"/> - <property name="dbType" value="3"/> + <property name="databaseName" value="BIGDECIMALCOL"/> + <property name="databaseType" value="3"/> <property name="javaName" value="bigdecimalcol"/> <property name="javaType" value="java.math.BigDecimal"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="STRCOL"/> - <property name="dbType" value="12"/> + <property name="databaseName" value="STRCOL"/> + <property name="databaseType" value="12"/> <property name="javaName" value="strcol"/> <property name="javaType" value="java.lang.String"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="DATECOL"/> - <property name="dbType" value="91"/> + <property name="databaseName" value="DATECOL"/> + <property name="databaseType" value="91"/> <property name="javaName" value="datecol"/> <property name="javaType" value="java.sql.Date"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="TIMECOL"/> - <property name="dbType" value="92"/> + <property name="databaseName" value="TIMECOL"/> + <property name="databaseType" value="92"/> <property name="javaName" value="timecol"/> <property name="javaType" value="java.sql.Time"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="TSCOL"/> - <property name="dbType" value="93"/> + <property name="databaseName" value="TSCOL"/> + <property name="databaseType" value="93"/> <property name="javaName" value="tscol"/> <property name="javaType" value="java.sql.Timestamp"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="ARRCOL"/> - <property name="dbType" value="-3"/> + <property name="databaseName" value="ARRCOL"/> + <property name="databaseType" value="-3"/> <property name="javaName" value="arrcol"/> <property name="javaType" value="java.lang.Object"/> </bean> @@ -140,8 +140,8 @@ <property name="keyFields"> <list> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="PK"/> - <property name="dbType" value="4"/> + <property name="databaseName" value="PK"/> + <property name="databaseType" value="4"/> <property name="javaName" value="pk"/> <property name="javaType" value="int"/> </bean> @@ -150,92 +150,92 @@ <property name="valueFields"> <list> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="PK"/> - <property name="dbType" value="4"/> + <property name="databaseName" value="PK"/> + <property name="databaseType" value="4"/> <property name="javaName" value="pk"/> <property name="javaType" value="int"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="BOOLCOL"/> - <property name="dbType" value="16"/> + <property name="databaseName" value="BOOLCOL"/> + <property name="databaseType" value="16"/> <property name="javaName" value="boolcol"/> <property name="javaType" value="boolean"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="BYTECOL"/> - <property name="dbType" value="-6"/> + <property name="databaseName" value="BYTECOL"/> + <property name="databaseType" value="-6"/> <property name="javaName" value="bytecol"/> <property name="javaType" value="byte"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="SHORTCOL"/> - <property name="dbType" value="5"/> + <property name="databaseName" value="SHORTCOL"/> + <property name="databaseType" value="5"/> <property name="javaName" value="shortcol"/> <property name="javaType" value="short"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="INTCOL"/> - <property name="dbType" value="4"/> + <property name="databaseName" value="INTCOL"/> + <property name="databaseType" value="4"/> <property name="javaName" value="intcol"/> <property name="javaType" value="int"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="LONGCOL"/> - <property name="dbType" value="-5"/> + <property name="databaseName" value="LONGCOL"/> + <property name="databaseType" value="-5"/> <property name="javaName" value="longcol"/> <property name="javaType" value="long"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="FLOATCOL"/> - <property name="dbType" value="7"/> + <property name="databaseName" value="FLOATCOL"/> + <property name="databaseType" value="7"/> <property name="javaName" value="floatcol"/> <property name="javaType" value="float"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="DOUBLECOL"/> - <property name="dbType" value="8"/> + <property name="databaseName" value="DOUBLECOL"/> + <property name="databaseType" value="8"/> <property name="javaName" value="doublecol"/> <property name="javaType" value="double"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="DOUBLECOL2"/> - <property name="dbType" value="8"/> + <property name="databaseName" value="DOUBLECOL2"/> + <property name="databaseType" value="8"/> <property name="javaName" value="doublecol2"/> <property name="javaType" value="double"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="BIGDECIMALCOL"/> - <property name="dbType" value="3"/> + <property name="databaseName" value="BIGDECIMALCOL"/> + <property name="databaseType" value="3"/> <property name="javaName" value="bigdecimalcol"/> <property name="javaType" value="java.math.BigDecimal"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="STRCOL"/> - <property name="dbType" value="12"/> + <property name="databaseName" value="STRCOL"/> + <property name="databaseType" value="12"/> <property name="javaName" value="strcol"/> <property name="javaType" value="java.lang.String"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="DATECOL"/> - <property name="dbType" value="91"/> + <property name="databaseName" value="DATECOL"/> + <property name="databaseType" value="91"/> <property name="javaName" value="datecol"/> <property name="javaType" value="java.sql.Date"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="TIMECOL"/> - <property name="dbType" value="92"/> + <property name="databaseName" value="TIMECOL"/> + <property name="databaseType" value="92"/> <property name="javaName" value="timecol"/> <property name="javaType" value="java.sql.Time"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="TSCOL"/> - <property name="dbType" value="93"/> + <property name="databaseName" value="TSCOL"/> + <property name="databaseType" value="93"/> <property name="javaName" value="tscol"/> <property name="javaType" value="java.sql.Timestamp"/> </bean> <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata"> - <property name="dbName" value="ARRCOL"/> - <property name="dbType" value="-3"/> + <property name="databaseName" value="ARRCOL"/> + <property name="databaseType" value="-3"/> <property name="javaName" value="arrcol"/> <property name="javaType" value="java.lang.Object"/> </bean>