Использует устаревшие DTO с JPA и JSF - PullRequest
0 голосов
/ 20 февраля 2019

Я немного запутался, как правильно настроить проект относительно потока данных между Backend (JPA) и Frontend (JSF)

В старое школьное время я учился использовать DAO (Repository, Service) и DTO, но на самом делеЯ больше не вижу необходимости использовать DTO.Вот почему я прошу здесь проконсультироваться со мной, как настроить общую платформу с использованием JPA и JSF.

У меня следующая ситуация:

Автомобиль Entity:

import javax.persistence.*;
import javax.validation.constraints.Size;
   @Entity
    @Table(name = "cars")
    public class Car {

        @Id
        @Size(min = 1)
        private String identifier;

a Репозиторий с основными функциями доступа к БД:

@Stateless
public class CarRepository implements Serializable {

    @PersistenceContext
    private EntityManager entityManager;

    public List<Car> getAllCars(){
        Query q = entityManager.createQuery("Select c from Car c");
        return q.getResultList();
    }

управляемый компонент с сессионной областью:

@ManagedBean(name = "carlistbean")
@SessionScoped
public class CarListBean implements Serializable {

private List<Car> cars= new ArrayList();

    @PostConstruct
    public void init(){
        cars = carRepository.getAllCars();
    }

В моем лицевом листе я ссылаюсь на автомобили:

<h:dataTable value = "#{carlistbean.cars}" var = "car"

Как видите, я пропускаю часть DTO (для моего понимания), но другим способом я "смешиваю" определения Beanvalidation и JPA в Entity.

My Car Entity имеет двунаправленное отношение к другомуПроизводитель сущности, к которому я могу получить доступ, используя метод getter.Так что для этого не нужно создавать составной DTO?

Это плохой, приемлемый, хороший дизайн?Как бы вы структурировали поток данных в 2019 году?

1 Ответ

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

Следуя советам JSF и Java EE, как, например, Бауке Шольц Как использовать DTO в JSF + Spring + Hibernate и Адаме Бине Насколько злы объекты передачи данных лучше не делатьиспользовать объекты DTO.

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