Spring Data Hazelcast

Welcome to Spring Data Hazelcast project!

The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use new data access technologies. This module provides integration with Hazelcast.

Examples

For examples on using Spring Data Hazelcast, see dedicated Code Samples: spring-data-hazelcast-chemistry-sample and spring-data-jpa-hazelcast-migration.

Artifacts

Maven

<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>spring-data-hazelcast</artifactId>
    <version>${version}</version>
</dependency>

Gradle

dependencies {
    compile 'com.hazelcast:spring-data-hazelcast:${version}'
}

Usage

Spring Configuration

@Configuration
@EnableHazelcastRepositories(basePackages={"example.springdata.keyvalue.chemistry"}) // <1>
public class ApplicationConfiguration {
    @Bean
    HazelcastInstance hazelcastInstance() {     // <2> 
        return Hazelcast.newHazelcastInstance();
        // return HazelcastClient.newHazelcastClient();
    }
}
  1. Enables Spring Data magic for Hazelcast. You can specify basePackages for component scan.
  2. Instantiates Hazelcast instance (a member or a client)

Repository Definition

public interface SpeakerRepository extends HazelcastRepository<Speaker, Long> {}

Test of Repository

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppConfiguration.class)
public class AppTest {
    @Autowired
    SpeakerRepository speakerRepository;

    @Test
    public void testStart(){
        speakerRepository.findAll();
    }
}

@Query Support

Sample @Query Usages

Query with hardcoded value

@Query("firstname=James")
public List<Person> peoplewiththeirFirstNameIsJames();

Query with one variable

@Query("firstname=%s")
public List<Person> peoplewiththeirFirstName(String firstName);

Query with multiple variable values

@Query("firstname=%s and lastname=%s")
public List<Person> peoplewithFirstAndLastName(String firstName,String lastName);

Supported Query Keywords

True
False
Equal
NotEqual
Before
LessThan
LessThanEqual
After
GreaterThan
GreaterThanEqual
Between
IsNull
IsNotNull
In
NotIn
Containing
NotContaining
StartingWith
EndingWith
Like
NotLike
Regex
Distinct
IsEmpty
ExistsBy
IsWithin
IsNear

Community

Chat with developers

Gitter

Stack Overflow

Stack Overflow

Submit your question with hazelcast and spring-data-hazelcast tags.

Mail Group

Please, join the mail group if you are interested in using or developing Hazelcast.

License

Hazelcast is available under the Apache 2 License. Please see the Licensing appendix for more information.

Copyright

Copyright (c) 2008-2020, Hazelcast, Inc. All Rights Reserved.

Visit http://www.hazelcast.com for more information.