Написание общего весеннего jpa-репозитория для всех сущностей - PullRequest
0 голосов
/ 09 декабря 2018

Я работаю над приложением Spring Boot.

У нас есть Service Layer, Rest Controller и Dao в качестве хранилища.

У меня есть 20-30 таблиц в моей базе данных, и я не хочу создаватьхранилище для каждой сущности и расширяет его до CrudRepository.

ex: Пользователь является сущностью, для выполнения операций персистентности над Пользователем мне необходимо создать UserRepository, который расширяет CrudRepository.

То же самое с отделом, компаниейи т.д. ...

Я хочу написать базовый репозиторий, который расширит CrudRepository, базовый репозиторий должен принимать все сущности и выполнять операции персистентности.

Есть ли способ для этого???

1 Ответ

0 голосов
/ 09 декабря 2018

Не расширяйте CrudRepository, все его функции привязаны к универсальному типу, было бы нехорошо расширить его для универсальной реализации.Вы, вероятно, просто хотите что-то простое, которое напрямую использует менеджер сущностей JPA:

import javax.persistence.EntityManager;

import org.springframework.beans.factory.annotation.Autowired;

public class GenericRepository {

    @Autowired
    private EntityManager entityManager;

    public <T, ID> T findById(Class<T> type, ID id) {
        return entityManager.find(type, id);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...