JPA쓰면서 느낀점 : DB를 내가 정하고 잘정규화되어서 간단한 쿼리만 나오는 경우가 아니라면 mybatis 쓰는게 나을거 같다.
유지보수 하기도 힘들거같다. ㅠㅠ 내가 잘못쓰는건가........
추가 두번째 프로젝트에서 느낀점 : Spring data rest를 같이쓰면 도메인 모델에 대한 CRUD 개발속도가 엄청 빠르다! (swagger로 Repository 에 메소드 추가할때마다 API 추가되는거 처음에 보면 깜놀합니다)
querydsl value operator 를 사용하니 1테이블 조회할땐 다양하게 검색조건을 후딱 넣어서 검색할수 있음.
SI 프로젝트에서 개발자 러닝커브가 아직까지는 매우심함.
DDD 로 개발을 한다고 하지만, 화면 설계를 설계자(DDD 를 이해못한)가 통계성 화면조회에서 Entity 여러개에 있는 모든항목 다 그리드에 보여줘야된다고 하면 개발자는 고뇌에 빠짐.
불필요한 항목,검색조건이라면 백앤드개발자가 기획,PO 를 옆에 두고 화면을 적절하게 수정해야 되는데, SI 에서는 개발자가 그런 회의하는거 자체가 이상하다 생각하는거 같음)
현재 TA 가이드 안내로는 4개의 테이블을 조인해야된다고 한다면, 4개의 Entity 에 이벤트를 발생해 1개의 통계성? Entity에 변경을 적용하는 방법을 이용한다고 한다.
(제 생각에는 통계성과 같이 정확한 데이터가 딱 떨어지는게 필요하지 않은 데이터(카운트나,자릿수가 큰 SUM값) 에서는 적절하나, 그냥 (상품,주문,결제,등등 엔티티가 많은 그리드화면이라고 무작정 적용하는건 아닌거같습니다. 이런화면 자체가 DDD,JPA 에는 맞지 않은거 같음)
백오피스성 화면에 JPA 자체가 맞지 않는거 아닌가 싶음.)
JPA 고급스킬을 써서 N개의테이블을 조인이 되긴하나 , select * from a,b,c where a.x=1 and b.x = 2 and c.x =3
같은 쿼리를 생성할수는 없기떄문에, 관리자(백오피스) 화면에는 JPA 로는 개발하기 힘든 부분이 많다.)
'Web개발 > JPA' 카테고리의 다른 글
Spring data rest is Null 이나 is Not null (0) | 2021.04.21 |
---|---|
Projection 사용법 & Projection 안에 Projection (0) | 2021.03.17 |
JPA 다대다 관계 풀기(1) (0) | 2021.03.14 |
JPA Join 관련 Annotation @NamedEntityGraph , @EntityGraph , FetchType (0) | 2021.03.10 |
@Entity 선언시 pk 역할 (0) | 2020.06.30 |