Skip to content

Latest commit

 

History

History
129 lines (100 loc) · 3.03 KB

README.md

File metadata and controls

129 lines (100 loc) · 3.03 KB

Spring Data Hazelcast

GitHub Actions status Maven Central

The primary goal of the Spring Data 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