2016-04-10 9 views
0

Ich habe zwei Tabellen Abteilung (dept_id und dept) und Mitarbeiter (emp_id, dept_id, Vorname, Nachname) in einer Datenbank, die ich in den Cache laden möchte. Ich habe das Schema-Import-Tool verwendet und dabei die Dateien CacheConfig.java, DepartmentKey.java, Department.java, Employee.java und EmployeeKey.java generiert. Now Nun, wie lade ich den Cache mit diesen beiden Tabellen?So laden Sie 2 Datenbanktabellen in den gleichen Gridgain-Cache

Hier ist der Code-Schnipsel:

private static class MySQLDemoStoreFactory<K, V> extends CacheJdbcPojoStoreFactory<K, V> { 
     //{@inheritDoc} 
     @Override public CacheJdbcPojoStore<K, V> create() { 


      MysqlDataSource dataSource = new MysqlDataSource(); 
      dataSource.setURL("jdbc:mysql://localhost/DB"); 
      dataSource.setUser("root"); 
      dataSource.setPassword("pass"); 
      setDataSource(dataSource); 
      return super.create(); 

     } 

    } 

dann in Haupt, um den Cache zu laden:

try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) { 
      // Configure cache store. 
      CacheConfiguration<EmployeeKey, Employee> cfg = 
       CacheConfig.cache("EmpCache", new MySQLDemoStoreFactory<EmployeeKey, Employee>()); 

      try (IgniteCache<EmployeeKey, Employee> cache = ignite.getOrCreateCache(cfg)) { 
       // Preload cache from database. 
       preload(cache); 

Dies wird es nur mit der Employee-Tabelle geladen werden, nicht wahr? Wie lade ich es mit der Abteilung und der Employee Tabelle beide?

Antwort