- 현업에서는 데이터베이스에 fk(외래키)를 설정하지 않고 사용하는 경우가 많다고 한다. (확실하게 이부분은 더 공부를 하고 작성해보도록 하겠다 ~)
- jpa 엔티티 매핑, 엔티티 관계 설정만 잘 해주면 된다고 한다.
- querydsl은 복잡한 쿼리문을 처리하기 위해서 사용되고 이때는 insert문은 지원하지 않는다고 한다.
- service 단에서는 조회를 제외한 나머지 작업들에는 @Transactional을 달아주어야 한다고 한다.
- controller부에서 해당 entity를 그대로 넘겨주는 것은 바람직하지 않다.(DB와 매우 근접하게 있는 entity를 컨트롤러 레이어까지 노출시키기 때문이다. ) 이를 해결하기 위해서는 필요한 엔티티 필드만을 넣은 DTO를 사용해서 DTO를 넘겨줄 수 있도록하자.
[생성자가 아닌 정적팩토리 메소드를 사용하자]
- 서비스부까지는 엔티티를 사용하는 것이 좋지만 컨트롤러부에서는 dto를 사용하는 것이 좋다.
- 이는 모든 엔티티를 노출시키는 것은 매우 ~ 위험하기 때문이라고 위에서도 구구절절 써놨다. 그렇기에 이런 위험을 줄이기 위해서는 컨트롤러부에서는 dto객체로 필요한 엔티티만 사용하는 것이 안전하다.
- 이때 entity를 넘겨받는 경우 dto로 넘겨줘야 한다면 생성자가 아닌 정적 팩토리 메소드를 사용해서 넘겨주자.
'Back-End > JPA(자바 ORM 표준 기술)' 카테고리의 다른 글
[JPA][엔티티 매핑] - 엔티티 매핑 (0) | 2022.06.02 |
---|---|
[JPA][영속성 관리] - CURD로 알아보는 영속성 컨텍스트의 필요성과 이점 (0) | 2022.05.26 |
[JPA][영속성 관리] - 영속성 컨텍스트 (0) | 2022.05.26 |
[JPA][영속성 관리] - 엔티티 매니저 팩토리와 엔티티 매니저 (0) | 2022.05.26 |
[JPA][JPA 시작] - JPA 애플리케이션 개발 시작 (0) | 2022.05.26 |