본문 바로가기

SpringBoot22

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Library.Library.Member.Member.heartList: could not initialize proxy - no Session 에러 org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Library.Library.Member.Member.heartList: could not initialize proxy - no Sessionorg.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Library.Library.Member.Member.heartList: could not initialize proxy - no Session 발생상황 - 일대다(Member:Heart) 양방향 관계 - 등록되어있는 멤버는 특정 책에 .. 2023. 8. 29.
@EmbeddedId @GeneratedValue 복합키 키자동증가 불가 우선 결론부터 말씀드리면, @GeneratedValue와 @EmbeddedId는 같이 못 쓴다고 확인했습니다... DDD를 공부하던 도중 엔티티의 식별자를 Long,String으로 보단 명확하게 알 수 있는 밸류 타입으로 사용하는 방식을 알려주었습니다. 하여 해당 방식을 적용하여 구현하였습니다.(아래 문제점 등장..) 기존) public class Book { @GeneratedValue(strategy = GenerationType.IDENTITY) //기본키 생성을 데이터베이스에 위임(데이터베이스에 의존적), Entity 등록 시 DB에서 AUTO_INCREMENT하여 PK생성 후 INSERT @Column(name = "book_id") private Long bookId; 개선) public cl.. 2023. 5. 16.
DB-> Entity, Entity->DB 자동 변환 (@Convert) 현재 DB에는 도서의 상태를 나타내는 같이 state 컬럼이 있습니다. 각 상태값과 그에 대한 설명은 아래와 같습니다. 0 - 대출 가능 1 - 대출 불가 Book엔티티 엔티티 조회 시 상태 값 그대로( 0,1 ) 로 조회됩니다. 문제 1) 모르는 사람이 봤을 땐 이 상태값이 어떤 의미를 알기가 어려웠습니다. 문제 2) 앞단으로 응답하는 ResponseDTO엔 상태값이 아닌 상태에 대한 설명 이 매핑되어 응답되길 원했습니다. 목표 1. 앞단 ResponseDTO에는 상태값이 아닌 상태설명 을 매핑 2. 모르는 이가 봐도 어떤 값인지 명확한 표현 3. 상태 추가 시 OCP 원칙 준수 BookSate 책상태를 나타내는 BookSate Enum클래스 생성 @Getter public enum BookState .. 2023. 5. 14.
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`) 배경 카카오 책검색 API 응답 도중 아래와 같은 에러가 발생했다. 더보기 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`) - 카카오 API를 통해 아래와 같은 구조의 json 응답 { "documents": [ { "authors": [ "이보영" ], "contents": "content1", "title": "뜯어먹는 중학 영숙어 1000(스프링)(스프링)" }, { "authors": [ "정혜련", "진효정" ], "contents": "content3" ".. 2023. 1. 3.