Получение данных из View с использованием CrudRepository - PullRequest
0 голосов
/ 12 февраля 2019

Для этого вопроса я не ищу решения, но ищу направление, откуда я могу идти вперед, поэтому не делюсь никаким кодом.

Я готовлю REST API и у меня есть postgresqlНастройка базы данных локально, которая имеет 2 таблицы и одно представление из этих 2 таблиц.

Обычно, когда я хочу получить какие-либо данные из БД, я использую следующий код (для ясности):

Класс DataRepository:

public interface DataRepository extends CrudRepository<Data, String>{}

Класс DataService:

@Service
public class DataService {
    @Autowired
    private DataRepository repo;
    public Data getData(String id){
        return repo.findById(id).orElse(null);
    }
}

Класс DataController:

@RestController
public class DataController{
    @Autowired
    private DataService service;
    @RequestMapping("/{id}")
    public Data getData(String id){
        return service.getData(id);
    }
}

Класс данных:

@Entity
public class Data{
    @Id
    private String id;
    private String name;

    //respective getter and setter methods
}

Теперь я хочу получить данные из представления, так какой же должен быть подход к этому?

Должны ли мы использовать тот же подход для создания классов Model, Service, Ctonroller и Repository?

Можем ли мы использовать CrudRepository для достижения того же самого?

Я искал во многих местах, но не нашел ничего полезного.

Дайте мне знать, если у кого-то естьлюбой ключ к этому.

1 Ответ

0 голосов
/ 13 февраля 2019

Методы чтения CrudRepository должны хорошо работать с представлением.Для методов записи представление должно быть обновляемым введите здесь описание ссылки .

Если вы хотите только читать, но не писать в хранилище, вы можете создать ReadOnlyRepositoryскопировав исходный код CrudRepository и удалив все методы записи.

Обратите внимание, что JPA по-прежнему будет пытаться сохранить изменения, внесенные в управляемые объекты.Чтобы избежать этого, а также избежать затрат на грязную проверку, вы можете пометить свои сущности как неизменные , если вы используете Hibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...