spring-data final
This commit is contained in:
parent
ce5113c48c
commit
6a03f1a9fd
|
@ -72,7 +72,7 @@
|
|||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.ignite</groupId>
|
||||
<artifactId>ignite-spring</artifactId>
|
||||
<artifactId>ignite-spring-data</artifactId>
|
||||
<version>${ignite.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
@ -201,7 +201,7 @@
|
|||
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
|
||||
<ormlite.version>5.0</ormlite.version>
|
||||
<kafka.version>1.0.0</kafka.version>
|
||||
<ignite.version>2.3.0</ignite.version>
|
||||
<ignite.version>2.4.0</ignite.version>
|
||||
<gson.version>2.8.2</gson.version>
|
||||
</properties>
|
||||
</project>
|
|
@ -0,0 +1,53 @@
|
|||
package com.baeldung.ignite.spring;
|
||||
|
||||
import com.baeldung.ignite.spring.config.SpringDataConfig;
|
||||
import com.baeldung.ignite.spring.dto.EmployeeDTO;
|
||||
import com.baeldung.ignite.spring.repository.EmployeeRepository;
|
||||
import org.apache.ignite.Ignite;
|
||||
import org.apache.ignite.IgniteCache;
|
||||
import org.apache.ignite.Ignition;
|
||||
import org.apache.ignite.cache.query.QueryCursor;
|
||||
import org.apache.ignite.cache.query.SqlFieldsQuery;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Gebruiker on 4/12/2018.
|
||||
*/
|
||||
public class IgniteApp {
|
||||
|
||||
public static void main (String[] args) {
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
context.register(SpringDataConfig.class);
|
||||
context.refresh();
|
||||
|
||||
EmployeeRepository repository = context.getBean(EmployeeRepository.class);
|
||||
|
||||
EmployeeDTO employeeDTO = new EmployeeDTO();
|
||||
employeeDTO.setId(1);
|
||||
employeeDTO.setName("John");
|
||||
employeeDTO.setEmployed(true);
|
||||
|
||||
repository.save(employeeDTO.getId(), employeeDTO);
|
||||
|
||||
EmployeeDTO employee = repository.getEmployeeDTOById(employeeDTO.getId());
|
||||
System.out.println(employee);
|
||||
}
|
||||
|
||||
private void getUsingTheCache(Integer employeeId) {
|
||||
|
||||
Ignite ignite = Ignition.ignite();
|
||||
|
||||
IgniteCache<Integer, EmployeeDTO> cache = ignite.cache("baeldungCache");
|
||||
|
||||
EmployeeDTO employeeDTO = cache.get(employeeId);
|
||||
|
||||
System.out.println(employeeDTO);
|
||||
|
||||
SqlFieldsQuery sql = new SqlFieldsQuery(
|
||||
"select * from EmployeeDTO where isEmployed = 'true'");
|
||||
|
||||
QueryCursor<List<?>> cursor = cache.query(sql);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package com.baeldung.ignite.spring.config;
|
||||
|
||||
import com.baeldung.ignite.spring.dto.EmployeeDTO;
|
||||
import com.baeldung.ignite.spring.repository.EmployeeRepository;
|
||||
import org.apache.ignite.Ignite;
|
||||
import org.apache.ignite.Ignition;
|
||||
import org.apache.ignite.configuration.CacheConfiguration;
|
||||
import org.apache.ignite.configuration.IgniteConfiguration;
|
||||
import org.apache.ignite.springdata.repository.config.EnableIgniteRepositories;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@EnableIgniteRepositories(basePackageClasses = EmployeeRepository.class)
|
||||
@ComponentScan(basePackages = "com.baeldung.ignite.spring.repository")
|
||||
public class SpringDataConfig {
|
||||
|
||||
@Bean
|
||||
public Ignite igniteInstance() {
|
||||
IgniteConfiguration config = new IgniteConfiguration();
|
||||
// Setting some custom name for the node.
|
||||
//config.setIgniteInstanceName("springDataNode");
|
||||
// Enabling peer-class loading feature.
|
||||
//config.setPeerClassLoadingEnabled(true);
|
||||
// Defining and creating a new cache to be used by Ignite Spring Data
|
||||
// repository.
|
||||
CacheConfiguration cache = new CacheConfiguration("baeldungCache");
|
||||
// Setting SQL schema for the cache.
|
||||
cache.setIndexedTypes(Integer.class, EmployeeDTO.class);
|
||||
config.setCacheConfiguration(cache);
|
||||
return Ignition.start(config);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.baeldung.ignite.spring.dto;
|
||||
|
||||
import org.apache.ignite.cache.query.annotations.QuerySqlField;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class EmployeeDTO implements Serializable {
|
||||
|
||||
@QuerySqlField(index = true)
|
||||
private Integer id;
|
||||
@QuerySqlField(index = true)
|
||||
private String name;
|
||||
@QuerySqlField(index = true)
|
||||
private boolean isEmployed;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public boolean isEmployed() {
|
||||
return isEmployed;
|
||||
}
|
||||
|
||||
public void setEmployed(boolean employed) {
|
||||
isEmployed = employed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EmployeeDTO{" +
|
||||
"id=" + id +
|
||||
", name='" + name + '\'' +
|
||||
", isEmployed=" + isEmployed +
|
||||
'}';
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package com.baeldung.ignite.spring.repository;
|
||||
|
||||
import com.baeldung.ignite.spring.dto.EmployeeDTO;
|
||||
import org.apache.ignite.springdata.repository.IgniteRepository;
|
||||
import org.apache.ignite.springdata.repository.config.RepositoryConfig;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
@RepositoryConfig(cacheName = "baeldungCache")
|
||||
public interface EmployeeRepository extends IgniteRepository<EmployeeDTO, Integer> {
|
||||
|
||||
EmployeeDTO getEmployeeDTOById(Integer id);
|
||||
}
|
Loading…
Reference in New Issue