Spring Data для Neo4j - это часть проекта Spring Data, целью
которой является предоставление совместимой и похожей на Spring модели программирования для данной СУБД,
сохраняя её возможности и функциональность.
Быстрый старт
Spring Data Neo4J обеспечивает интеграцию с графоориентированной СУБД Neo4j. Шаблонная модель программирования эквивалентна шаблонной модели программирования Spring и создает фундамент для взаимодействия с графом, а также поддержку репозиториев.
Рекомендованный путь для начального использования spring-data-neo4j
в вашем проекте
с использованием системы управления зависимостями – скопировать фрагмент кода ниже и вставить
в вашу конфигурацию сборки. Нужна помощь? Ознакомьтесь с нашими руководствами по созданию приложений
с использованием Maven и
Gradle.
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
</dependencies>
@NodeEntity
public class Movie {
@GraphId Long id;
@Indexed(type = FULLTEXT, indexName = "search")
String title;
Person director;
@RelatedTo(type="ACTS_IN", direction = INCOMING)
Set actors;
@RelatedToVia(type = "RATED")
Iterable ratings;
@Query("start movie=node({self}) match movie-->genre<--similar return similar")
Iterable similarMovies;
}
Определим интерфейс репозитория
interface MovieRepository extends GraphRepository {
@Query("start movie={0} match m>-[rating:RATED]-user return rating")
Iterable getRatings(Movie movie);
// Актёры
Iterable findByActorsMoviesActorName(name)
}
Активируем Spring Data Neo4j репозитории
<neo4j:repositories base-package="com.example.dao"/>
Используем репозиторий
@Autowired MovieRepository repo;
Iterable movies = repo.findAll();
Movie movie = repo.findByPropertyValue("title","Matrix");
repo.save(movie);
Iterable ratings = repo.getRatings(movie);