Spring Data3 NoSuchMethodException - Querydsl에서 생성자 예외가 발생할 때 해결 방법 QueryDSL에서 생성자 예외 java.lang.NoSuchMethodException: ...() 프로젝트 도중 JPA 동적쿼리로 페이징 처리를 했어야 했기 때문에 QueryDsl을 사용해야 했습니다. 쿼리문을 쏘고 나서, 리턴 타입을 반환할 때 Entity보단 DTO가 반환되기를 원했고, 그래서 쿼리문에 필드 Projection으로 DTO를 반환하도록 했습니다. 그러던 중, 위와 같은 예외가 터졌습니다. @Override public Page findAllByMemberId(Long memberId, OrderSearchCond condition, Pageable pageable) { List content = queryFactory .select(fields(OrderListResponse.cla.. 2023. 2. 27. HibernateException 예외 해결 - JPA 연관관계 매핑에서 발생한 문제 해결 방법 스프링부트 프로젝트 도중 JPA 사용 중에 위와 같은 예외가 발생했습니다. org.hibernate.HibernateException: More than one row with the given identifier was found: 1, for class 결론적으로 연관관계 매핑을 잘못했었고, 연관관계를 수정하니 해결했습니다. 그럼 어떤 것이 문제였는지 알려드리겠습니다. 저는, 장바구니를 구현했습니다. 장바구니와 회원의 관계는 1:1 매핑으로, 장바구니와 상품과의 관계는 多:1 관계로 매핑했습니다. 제 생각으로는 회원 A는 하나의 장바구니만 갖을 수 있고, 장바구니도 A와 B의 공동 장바구니란 개념은 없으며, A만의 장바구니 B만의 장바구니만 갖을 수 있다 생각해서였습니다. 또 회원 엔티티는 회원에 관.. 2023. 2. 25. Entity는 기본형 타입과 래퍼클래스 중 어떤 것을 사용하는가? 엔티티의 필드는 어떻게 선언해야 하나? 엔티티에서 필드를 선언할 때 기본형으로 선언해야하는지, 래퍼 클래스(Wrapper Class)로 선언해야 하는지 고민될 때가 있습니다. 저는 @Id가 매핑된 필드에는 무조건 참조형 타입을 선언하길래 왜 기본형을 사용하지 않는지 고민했었는데요? 아래 사실들을 알면 납득되실 겁니다. @Id @GeneratedValue private Long id; 래퍼 클래스는 Null을 허용한다. Integer, Long, String, Boolean, Double 등등... 래퍼 클래스는 기본형과 달리 Null을 허용합니다. 반대로 기본형 타입은 Null을 허용하지 않죠. 이 둘간의 차이점을 바탕으로 생각을 하셔야 합니다. 엔티티의 본질은 무엇인가? 엔티티는 하나의 정체성을 가진 .. 2023. 1. 29. 이전 1 다음