Spring DATA
Giriş
- Farklı DB teknolojilerini kullanım ve yönetimini
tek bir çatı altına toplar.
- Spring DATA JPA
- Spring DATA MongoDB
- Redis, Hadoop, Neo4J, Gemfire ...
@Configuration
- @EnableJpaRepositories
- @EnableJpaRepositories
- @Bean(name = "entityManagerFactory")
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.4.1.RELEASE</version>
</dependency>
Repository
- Tüm Repository operasyonları için temel
arayüz.
public interface Repository<T, ID extends Serializable> {
}
CrudRepository
public interface CrudRepository<T, ID extends Serializable>
extends Repository<T, ID> {
<S extends T> S save(S entity);
T findOne(ID primaryKey);
Iterable<T> findAll();
Long count();
void delete(T entity);
boolean exists(ID primaryKey);
// … ve dahası.
}
PagingAndSortingRepository
public interface PagingAndSortingRepository<T, ID extends Serializable>
extends CrudRepository<T, ID> {
Iterable<T> findAll(Sort sort);
Page<T> findAll(Pageable pageable);
}
Query Dsl Predicate Executor
public interface QueryDslPredicateExecutor<T> {
T findOne(Predicate predicate);
Iterable<T> findAll(Predicate predicate);
Iterable<T> findAll(Predicate predicate, OrderSpecifier<?>... orders);
Page<T> findAll(Predicate predicate, Pageable pageable);
long count(Predicate predicate);
}
Query Stratejileri
- CREATE
- – Metod adı üzerinden
- USE_DECLARED_QUERY
- – @Query üzerinden
- CREATE_IF_NOT_FOUND (varsayılan)
- – Varsa @Query yoksa Metod adı üzerinden
CountryRepository
public interface CountryRepository extends Repository<Country, String> {
Country findOneByCode(String code);
Country findOneByLocalNameIgnoreCase(String capital);
List<Country> findByContinentAndLifeExpectancy(String continent, Float lifeExpentancy);
List<Country> findByLifeExpectancyLessThan(Float lifeExpentancy);
}
CityRepository
public interface CityRepository extends Repository<City,Integer> {
List<City> findByCountryCode_LocalNameOrderByNameDesc(String localName);
List<City> findByPopulationGreaterThan(Integer population,Pageable pageable);
Page<City> findByCountryCode_CodeLike(String code,Pageable pageable);
@Query("select c from City c where c.name like ?1")
List<City> findSomeCity(String name);
}
CustomRepository
Sorular?
Spring DATA
By Talip Akhan
Spring DATA
Spring Data Başlangıç
- 194