Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-329 [created] f90384715


# IGNITE-329 Example of  CacheTypeMetadata and CacheJdbcPojoStore usage.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f9038471
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f9038471
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f9038471

Branch: refs/heads/ignite-329
Commit: f9038471553d5b32d76443acc1c9104d85016e5a
Parents: e86c69e
Author: AKuznetsov <akuznet...@gridgain.com>
Authored: Tue Feb 24 15:15:27 2015 +0700
Committer: AKuznetsov <akuznet...@gridgain.com>
Committed: Tue Feb 24 15:15:27 2015 +0700

----------------------------------------------------------------------
 .../config/store/example-jdbc-pojo-store.xml    | 183 +++++++++++++++++++
 .../datagrid/CacheJdbcPojoStoreExample.java     | 167 +++++++++++++++++
 .../datagrid/store/model/Organization.java      | 155 ++++++++++++++++
 .../datagrid/store/model/OrganizationKey.java   |  97 ++++++++++
 .../examples/datagrid/store/model/Person.java   | 155 ++++++++++++++++
 .../datagrid/store/model/PersonKey.java         |  97 ++++++++++
 6 files changed, 854 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9038471/examples/config/store/example-jdbc-pojo-store.xml
----------------------------------------------------------------------
diff --git a/examples/config/store/example-jdbc-pojo-store.xml 
b/examples/config/store/example-jdbc-pojo-store.xml
new file mode 100644
index 0000000..608d9c1
--- /dev/null
+++ b/examples/config/store/example-jdbc-pojo-store.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<!--
+    Ignite Spring configuration file to startup Ignite cache.
+
+    When starting a standalone node, you need to execute the following command:
+    {IGNITE_HOME}/bin/ignite.{bat|sh} 
examples/config/example-jdbc-pojo-store.xml
+
+    When starting Ignite from Java IDE, pass path to this file to Ignition:
+    Ignition.start("examples/config/example-jdbc-pojo-store.xml");
+-->
+<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
+        http://www.springframework.org/schema/beans/spring-beans.xsd";>
+    <bean id="jdbcPojoStore" 
class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore">
+        <property name="dialect">
+            <bean 
class="org.apache.ignite.cache.store.jdbc.dialect.H2Dialect"/>
+        </property>
+
+        <property name="dataSource">
+            <bean class="org.h2.jdbcx.JdbcConnectionPool" 
factory-method="create">
+                <constructor-arg 
value="jdbc:h2:tcp://localhost/mem:ExampleDb"/>
+                <constructor-arg value="sa"/>
+                <constructor-arg value=""/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="ignite.cfg" 
class="org.apache.ignite.configuration.IgniteConfiguration">
+        <!-- Set to true to enable distributed class loading for examples, 
default is false. -->
+        <property name="peerClassLoadingEnabled" value="true"/>
+
+        <property name="marshaller">
+            <bean 
class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller">
+                <!-- Set to false to allow non-serializable objects in 
examples, default is true. -->
+                <property name="requireSerializable" value="false"/>
+            </bean>
+        </property>
+
+        <!-- Cache configuration. -->
+        <property name="cacheConfiguration">
+            <list>
+                <bean 
class="org.apache.ignite.configuration.CacheConfiguration">
+                    <property name="name" value="partitioned"/>
+                    <property name="cacheMode" value="PARTITIONED"/>
+                    <property name="atomicityMode" value="ATOMIC"/>
+                    <property name="distributionMode" 
value="PARTITIONED_ONLY"/>
+                    <property name="preloadMode" value="SYNC"/>
+                    <property name="backups" value="1"/>
+
+                    <property name="cacheStoreFactory">
+                        <bean 
class="javax.cache.configuration.FactoryBuilder$SingletonFactory">
+                            <constructor-arg ref="jdbcPojoStore"/>
+                        </bean>
+                    </property>
+
+                    <property name="typeMetadata">
+                        <list>
+                            <bean 
class="org.apache.ignite.cache.CacheTypeMetadata">
+                                <property name="databaseSchema" 
value="PUBLIC"/>
+                                <property name="databaseTable" 
value="ORGANIZATION"/>
+                                <property name="keyType" 
value="org.apache.ignite.examples.datagrid.store.model.OrganizationKey"/>
+                                <property name="valueType" 
value="org.apache.ignite.examples.datagrid.store.model.Organization"/>
+                                <property name="keyFields">
+                                    <list>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="ID"/>
+                                            <property name="databaseType" 
value="4"/>
+                                            <property name="javaName" 
value="id"/>
+                                            <property name="javaType" 
value="int"/>
+                                        </bean>
+                                    </list>
+                                </property>
+                                <property name="valueFields">
+                                    <list>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="ID"/>
+                                            <property name="databaseType" 
value="4"/>
+                                            <property name="javaName" 
value="id"/>
+                                            <property name="javaType" 
value="int"/>
+                                        </bean>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="NAME"/>
+                                            <property name="databaseType" 
value="12"/>
+                                            <property name="javaName" 
value="name"/>
+                                            <property name="javaType" 
value="java.lang.String"/>
+                                        </bean>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="CITY"/>
+                                            <property name="databaseType" 
value="12"/>
+                                            <property name="javaName" 
value="city"/>
+                                            <property name="javaType" 
value="java.lang.String"/>
+                                        </bean>
+                                    </list>
+                                </property>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.CacheTypeMetadata">
+                                <property name="databaseSchema" 
value="PUBLIC"/>
+                                <property name="databaseTable" value="PERSON"/>
+                                <property name="keyType" 
value="org.apache.ignite.examples.datagrid.store.model.PersonKey"/>
+                                <property name="valueType" 
value="org.apache.ignite.examples.datagrid.store.model.Person"/>
+                                <property name="keyFields">
+                                    <list>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="ID"/>
+                                            <property name="databaseType" 
value="4"/>
+                                            <property name="javaName" 
value="id"/>
+                                            <property name="javaType" 
value="int"/>
+                                        </bean>
+                                    </list>
+                                </property>
+                                <property name="valueFields">
+                                    <list>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="ID"/>
+                                            <property name="databaseType" 
value="4"/>
+                                            <property name="javaName" 
value="id"/>
+                                            <property name="javaType" 
value="int"/>
+                                        </bean>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="ORG_ID"/>
+                                            <property name="databaseType" 
value="4"/>
+                                            <property name="javaName" 
value="orgId"/>
+                                            <property name="javaType" 
value="java.lang.Integer"/>
+                                        </bean>
+                                        <bean 
class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+                                            <property name="databaseName" 
value="NAME"/>
+                                            <property name="databaseType" 
value="12"/>
+                                            <property name="javaName" 
value="name"/>
+                                            <property name="javaType" 
value="java.lang.String"/>
+                                        </bean>
+                                    </list>
+                                </property>
+                            </bean>
+                        </list>
+                    </property>
+                </bean>
+            </list>
+        </property>
+
+        <!-- Explicitly configure TCP discovery SPI to provide list of initial 
nodes. -->
+        <property name="discoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
+                <property name="ipFinder">
+                    <!--
+                        Ignite provides several options for automatic 
discovery that can be used
+                        instead os static IP based discovery. For information 
on all options refer
+                        to our documentation: 
http://doc.gridgain.org/latest/Automatic+Node+Discovery
+                    -->
+                    <!-- Uncomment static IP finder to enable static-based 
discovery of initial nodes. -->
+                    <!--<bean 
class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">-->
+                    <bean 
class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
+                        <property name="addresses">
+                            <list>
+                                <!-- In distributed environment, replace with 
actual host IP address. -->
+                                <value>127.0.0.1:47500..47501</value>
+                            </list>
+                        </property>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9038471/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheJdbcPojoStoreExample.java
----------------------------------------------------------------------
diff --git 
a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheJdbcPojoStoreExample.java
 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheJdbcPojoStoreExample.java
new file mode 100644
index 0000000..f76afc8
--- /dev/null
+++ 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheJdbcPojoStoreExample.java
@@ -0,0 +1,167 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.examples.datagrid;
+
+import org.apache.ignite.*;
+import org.apache.ignite.examples.datagrid.store.model.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.h2.tools.*;
+
+import java.sql.*;
+import java.util.*;
+
+/**
+ * This examples demonstrates loading data into cache from underlying JDBC 
store.
+ */
+public class CacheJdbcPojoStoreExample {
+    /** DB connection URL. */
+    private static final String CONN_URL = 
"jdbc:h2:mem:ExampleDb;DB_CLOSE_DELAY=-1";
+
+    /** Cache name. */
+    private static final String CACHE_NAME = "partitioned";
+
+    /** Number of generated organizations. */
+    private static final int ORGANIZATION_CNT = 5;
+
+    /** Number of generated persons. */
+    private static final int PERSON_CNT = 100;
+
+    /**
+     * Executes example.
+     *
+     * @param args Command line arguments, none required.
+     * @throws Exception If example execution failed.
+     */
+    public static void main(String[] args) throws Exception {
+        System.out.println("Populate database with sample data.");
+
+        createDb();
+
+        // Start H2 database TCP server in order to access sample in-memory 
database from other processes.
+        // This is H2 specific only.
+        Server srv = Server.createTcpServer().start();
+
+        // Start node and load cache from database.
+        try (Ignite ignite = 
Ignition.start("examples/config/store/example-jdbc-pojo-store.xml")) {
+            IgniteCache<Object, Object> cache = ignite.jcache(CACHE_NAME);
+
+            System.out.println("Load whole DB into cache.");
+
+            cache.loadCache(null);
+
+            System.out.println("Print loaded content.");
+
+            System.out.println("Organizations:");
+            for (int i = 0; i < ORGANIZATION_CNT; i++) {
+                OrganizationKey orgKey = new OrganizationKey(i);
+
+                System.out.println("    " + cache.get(orgKey));
+            }
+
+            System.out.println("Persons:");
+            for (int i = 0; i < PERSON_CNT; i++) {
+                PersonKey prnKey = new PersonKey(i);
+
+                System.out.println("    " + cache.get(prnKey));
+            }
+
+            System.out.println("Clear cache for next demo.");
+
+            cache.clear();
+
+            System.out.println("Cache size = " + cache.size());
+
+            System.out.println("Load cache by custom SQL.");
+
+            // JDBC cache store accept pairs of "full key class name -> SQL 
statement"
+            cache.loadCache(null,
+                
"org.apache.ignite.examples.datagrid.store.model.OrganizationKey",
+                "SELECT * FROM Organization WHERE id = 2",
+                "org.apache.ignite.examples.datagrid.store.model.PersonKey",
+                "SELECT * FROM Person WHERE id = 5");
+
+            System.out.println("Check custom SQL.");
+            System.out.println("    Organization: " + cache.get(new 
OrganizationKey(2)));
+            System.out.println("    Person: " + cache.get(new PersonKey(5)));
+        }
+
+        // Stop H2 TCP server. H2 specific only.
+        srv.stop();
+
+        System.exit(0);
+    }
+
+    /**
+     * Create example DB and populate it with sample data.
+     *
+     * @throws Exception If failed to create databse and populate it with 
sample data.
+     */
+    private static void createDb() throws Exception {
+        Class.forName("org.h2.Driver");
+
+        Connection conn = DriverManager.getConnection(CONN_URL, "sa", "");
+
+        Statement stmt = conn.createStatement();
+
+        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))");
+
+        U.closeQuiet(stmt);
+
+        conn.commit();
+
+        PreparedStatement orgStmt = conn.prepareStatement("INSERT INTO 
Organization(id, name, city) VALUES (?, ?, ?)");
+
+        for (int i = 0; i < ORGANIZATION_CNT; i++) {
+            orgStmt.setInt(1, i);
+            orgStmt.setString(2, "org-name-" + i);
+            orgStmt.setString(3, "city-" + i);
+
+            orgStmt.addBatch();
+        }
+
+        orgStmt.executeBatch();
+
+        U.closeQuiet(orgStmt);
+
+        conn.commit();
+
+        PreparedStatement prnStmt = conn.prepareStatement("INSERT INTO 
Person(id, org_id, name) VALUES (?, ?, ?)");
+
+        Random rnd = new Random();
+
+        for (int i = 0; i < PERSON_CNT; i++) {
+            prnStmt.setInt(1, i);
+            prnStmt.setInt(2, rnd.nextInt(ORGANIZATION_CNT));
+            prnStmt.setString(3, "person-name-" + i);
+
+            prnStmt.addBatch();
+        }
+
+        prnStmt.executeBatch();
+
+        U.closeQuiet(prnStmt);
+
+        conn.commit();
+
+        U.closeQuiet(conn);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9038471/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Organization.java
----------------------------------------------------------------------
diff --git 
a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Organization.java
 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Organization.java
new file mode 100644
index 0000000..98e62eb
--- /dev/null
+++ 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Organization.java
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.examples.datagrid.store.model;
+
+import java.io.*;
+
+/**
+ * Organization definition.
+ *
+ * Code generated by Apache Ignite Schema Load utility: 02/24/2015.
+ */
+public class Organization implements Serializable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Value for id. */
+    private int id;
+
+    /** Value for name. */
+    private String name;
+
+    /** Value for city. */
+    private String city;
+
+    /**
+     * Empty constructor.
+     */
+    public Organization() {
+        // No-op.
+    }
+
+    /**
+     * Full constructor.
+     */
+    public Organization(
+        int id,
+        String name,
+        String city
+    ) {
+        this.id = id;
+        this.name = name;
+        this.city = city;
+    }
+
+    /**
+     * Gets id.
+     *
+     * @return Value for id.
+     */
+    public int getId() {
+        return id;
+    }
+
+    /**
+     * Sets id.
+     *
+     * @param id New value for id.
+     */
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    /**
+     * Gets name.
+     *
+     * @return Value for name.
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets name.
+     *
+     * @param name New value for name.
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Gets city.
+     *
+     * @return Value for city.
+     */
+    public String getCity() {
+        return city;
+    }
+
+    /**
+     * Sets city.
+     *
+     * @param city New value for city.
+     */
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof Organization))
+            return false;
+
+        Organization that = (Organization)o;
+
+        if (id != that.id)
+            return false;
+
+        if (name != null ? !name.equals(that.name) : that.name != null)
+            return false;
+
+        if (city != null ? !city.equals(that.city) : that.city != null)
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = id;
+
+        res = 31 * res + (name != null ? name.hashCode() : 0);
+
+        res = 31 * res + (city != null ? city.hashCode() : 0);
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return "Organization [id=" + id +
+            ", name=" + name +
+            ", city=" + city +
+            "]";
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9038471/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/OrganizationKey.java
----------------------------------------------------------------------
diff --git 
a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/OrganizationKey.java
 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/OrganizationKey.java
new file mode 100644
index 0000000..f142754
--- /dev/null
+++ 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/OrganizationKey.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.examples.datagrid.store.model;
+
+import java.io.*;
+
+/**
+ * OrganizationKey definition.
+ *
+ * Code generated by Apache Ignite Schema Load utility: 02/24/2015.
+ */
+public class OrganizationKey implements Serializable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Value for id. */
+    private int id;
+
+    /**
+     * Empty constructor.
+     */
+    public OrganizationKey() {
+        // No-op.
+    }
+
+    /**
+     * Full constructor.
+     */
+    public OrganizationKey(
+        int id
+    ) {
+        this.id = id;
+    }
+
+    /**
+     * Gets id.
+     *
+     * @return Value for id.
+     */
+    public int getId() {
+        return id;
+    }
+
+    /**
+     * Sets id.
+     *
+     * @param id New value for id.
+     */
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof OrganizationKey))
+            return false;
+
+        OrganizationKey that = (OrganizationKey)o;
+
+        if (id != that.id)
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = id;
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return "OrganizationKey [id=" + id +
+            "]";
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9038471/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Person.java
----------------------------------------------------------------------
diff --git 
a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Person.java
 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Person.java
new file mode 100644
index 0000000..ad56534
--- /dev/null
+++ 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/Person.java
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.examples.datagrid.store.model;
+
+import java.io.*;
+
+/**
+ * Person definition.
+ *
+ * Code generated by Apache Ignite Schema Load utility: 02/24/2015.
+ */
+public class Person implements Serializable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Value for id. */
+    private int id;
+
+    /** Value for orgId. */
+    private Integer orgId;
+
+    /** Value for name. */
+    private String name;
+
+    /**
+     * Empty constructor.
+     */
+    public Person() {
+        // No-op.
+    }
+
+    /**
+     * Full constructor.
+     */
+    public Person(
+        int id,
+        Integer orgId,
+        String name
+    ) {
+        this.id = id;
+        this.orgId = orgId;
+        this.name = name;
+    }
+
+    /**
+     * Gets id.
+     *
+     * @return Value for id.
+     */
+    public int getId() {
+        return id;
+    }
+
+    /**
+     * Sets id.
+     *
+     * @param id New value for id.
+     */
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    /**
+     * Gets orgId.
+     *
+     * @return Value for orgId.
+     */
+    public Integer getOrgId() {
+        return orgId;
+    }
+
+    /**
+     * Sets orgId.
+     *
+     * @param orgId New value for orgId.
+     */
+    public void setOrgId(Integer orgId) {
+        this.orgId = orgId;
+    }
+
+    /**
+     * Gets name.
+     *
+     * @return Value for name.
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets name.
+     *
+     * @param name New value for name.
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof Person))
+            return false;
+
+        Person that = (Person)o;
+
+        if (id != that.id)
+            return false;
+
+        if (orgId != null ? !orgId.equals(that.orgId) : that.orgId != null)
+            return false;
+
+        if (name != null ? !name.equals(that.name) : that.name != null)
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = id;
+
+        res = 31 * res + (orgId != null ? orgId.hashCode() : 0);
+
+        res = 31 * res + (name != null ? name.hashCode() : 0);
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return "Person [id=" + id +
+            ", orgId=" + orgId +
+            ", name=" + name +
+            "]";
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9038471/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/PersonKey.java
----------------------------------------------------------------------
diff --git 
a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/PersonKey.java
 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/PersonKey.java
new file mode 100644
index 0000000..ec517d5
--- /dev/null
+++ 
b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/model/PersonKey.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.examples.datagrid.store.model;
+
+import java.io.*;
+
+/**
+ * PersonKey definition.
+ *
+ * Code generated by Apache Ignite Schema Load utility: 02/24/2015.
+ */
+public class PersonKey implements Serializable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Value for id. */
+    private int id;
+
+    /**
+     * Empty constructor.
+     */
+    public PersonKey() {
+        // No-op.
+    }
+
+    /**
+     * Full constructor.
+     */
+    public PersonKey(
+        int id
+    ) {
+        this.id = id;
+    }
+
+    /**
+     * Gets id.
+     *
+     * @return Value for id.
+     */
+    public int getId() {
+        return id;
+    }
+
+    /**
+     * Sets id.
+     *
+     * @param id New value for id.
+     */
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof PersonKey))
+            return false;
+
+        PersonKey that = (PersonKey)o;
+
+        if (id != that.id)
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = id;
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return "PersonKey [id=" + id +
+            "]";
+    }
+}
+

Reply via email to