Back-End/JPA(자바 ORM 표준 기술)

jpa - 간단하게 수업을 듣고 알게된 점.

얄루몬 2022. 12. 4. 16:28
  • 현업에서는 데이터베이스에 fk(외래키)를 설정하지 않고 사용하는 경우가 많다고 한다. (확실하게 이부분은 더 공부를 하고 작성해보도록 하겠다 ~)
  • jpa 엔티티 매핑, 엔티티 관계 설정만 잘 해주면 된다고 한다. 
  • querydsl은 복잡한 쿼리문을 처리하기 위해서 사용되고 이때는 insert문은 지원하지 않는다고 한다.
  • service 단에서는 조회를 제외한 나머지 작업들에는 @Transactional을 달아주어야 한다고 한다.
  • controller부에서 해당 entity를 그대로 넘겨주는 것은 바람직하지 않다.(DB와 매우 근접하게 있는 entity를 컨트롤러 레이어까지 노출시키기 때문이다. ) 이를 해결하기 위해서는 필요한 엔티티 필드만을 넣은 DTO를 사용해서 DTO를 넘겨줄 수 있도록하자.

 

[생성자가 아닌 정적팩토리 메소드를 사용하자]

- 서비스부까지는 엔티티를 사용하는 것이 좋지만 컨트롤러부에서는 dto를 사용하는 것이 좋다. 

- 이는 모든 엔티티를 노출시키는 것은 매우 ~ 위험하기 때문이라고 위에서도 구구절절 써놨다. 그렇기에 이런 위험을 줄이기 위해서는 컨트롤러부에서는 dto객체로 필요한 엔티티만 사용하는 것이 안전하다.

- 이때 entity를 넘겨받는 경우 dto로 넘겨줘야 한다면 생성자가 아닌 정적 팩토리 메소드를 사용해서 넘겨주자.