Spring 65

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: fourman.backend.domain.member.entity.Member.authentications, could not initialize proxy - no Session

이 방식으로 해결이 되는데 DTO를 쓰는 방법도 있다고한다. 새로운 DTO 객체를 사용하는 경우: 필요한 정보만 포함하는 새로운 DTO 객체를 만들고, getSeats 메서드에서 해당 DTO 객체를 반환하도록 수정합니다. 예를 들어, 클라이언트에게 Seat 및 관련 정보만 반환하는 경우 새로운 SeatResponse DTO를 만듭니다. java Copy code public class SeatResponse { private Long id; private String seatNumber; // 필요한 다른 정보 // 생성자 및 getter, setter } 그런 다음 getSeats 메서드에서 SeatResponse DTO 객체로 변환하고 반환합니다. java Copy code @Transactional..

Spring 2023.04.19

java.lang.IllegalStateException: Cannot call sendError() after the response has been committed

이 에러는 HTTP 응답이 이미 커밋된 상태에서 sendError() 메서드가 호출되어 발생한 IllegalStateException 입니다. 이 경우, 서블릿 컨테이너가 이미 클라이언트에 응답을 보낸 상태에서 추가적인 에러를 전송하려고 했기 때문에 오류가 발생합니다. 또한, 이 로그에서 주목해야 할 또 다른 에러는 HttpMessageNotWritableException입니다. 이 에러는 애플리케이션에서 Member 엔티티의 authentications 컬렉션을 지연 로딩(lazy loading)하려고 시도할 때 Hibernate 세션이 존재하지 않아 발생합니다. 이 경우 엔티티를 JSON으로 변환하는 과정에서 지연 로딩된 authentications 컬렉션을 초기화하지 못했습니다. 이 문제를 해결하려..

Spring 2023.04.18

[ERROR] JPA TransientPropertyValueException: object references an unsaved transient instance

JPA를 사용해 객체간 @OneToOne 관계를 설정한뒤 Repository의 save를 호출할때 아래와 같은 에러가 발생할 수 있다. 이러한 상황은 주로 부모객체에서 자식객체를 한번에 저장하려고할때 발생하는 것으로, 자식 객체가 아직 데이터베이스에 저장되지 않았기 떄문이다. 사용한 클래스는 아래와 같다. Mission가 부모 MissionRule가 자식이다. 부모객체에 선언한 자식객체에 CascadeType.ALL을 선언한다. 이를 통해 영속성 전이가 발생해 부모객체를 저장할때 자식객체도 함께 저장할 수 있다. 출처 :https://minholee93.tistory.com/entry/ERROR-JPA-TransientPropertyValueException-object-references-an-unsa..

Spring 2023.03.26

JPA ddl-auto 설정

spring.jpa.hibernate.ddl-auto none - 엔티티가 변경되더라도 데이터베이스를 변경하지 않는다. update - 엔티티의 변경된 부분만 적용한다. validate - 변경사항이 있는지 검사만 한다. create - 스프링부트 서버가 시작될때 모두 drop하고 다시 생성한다. create-drop - create와 동일하다. 하지만 종료시에도 모두 drop 한다. 개발 환경에서는 보통 update 모드를 사용하고 운영환경에서는 none 또는 validate 모드를 사용한다. 출처: https://wikidocs.net/161164 점프투스프링

Spring 2023.03.17