[JPA ERROR] FetchType.LAZY 설정으로 인해 Proxy 객체가 초기화 되지 않았을 때 발생한 에러
·
Server/Error
문제 org.springframework.messaging.converter.MessageConversionException: Could not write JSON: could not initialize proxy \[com.onlyu.domain.entity.Member#1\] - no Session (through reference chain: com.onlyu.domain.entity.Chat\["chatRoom"\]->com.onlyu.domain.entity.ChatRoom\["member1"\]->com.onlyu.domain.entity.Member$HibernateProxy$XbE9wKRQ\["email"\]); nested exception is com.fasterxml.jackson.d..
[Querydsl] Spring Boot 3.0 이상 Querydsl 세팅 gradle
·
Server/Spring&Spring Boot
build.gradle 설정 plugins { ... id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } ... dependencies { ... implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakart..
[Project] 2차 미션 발표 내용 - Redis 적용과 활용
·
회고록/Archive
발표를 앞서 REDIS에 설치를 진행하면서 Local 문제가 발생하여 멘토님께 질문하고, REDIS를 설치함으로써 에러가 발생하여 Spring이 올라간 Container가 Doker에서 떨어지면서 채점이 되지 않아 강사님께 질문하다가 REDIS와 Refresh 토큰을 시도하고 있다는 것을 들키면서 이 발표를 진행하게 되지 않았나 생각이 듭니다. 저보다 REDIS를 먼저 시도하고, 이미 프로젝트를 완료해 본 경험이 있으신 분들이 계실 것입니다. 저는 아직 완벽하게 성공을 이룬것이 아니고, 여전히 여러 방법을 시도 중에 있다는 것을 감안하고 발표를 들어주시면 감사하겠습니다. 틀린 점이나, 고민하고 있는 상황에 대해 답을 알고 계신 분은 댓글(또는 라운지 채널에)을 남겨주시면 감사하겠습니다. 꼭..! REDI..
[JPA] HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance @OneToMany 문제
·
Server/Error
예외 발생 현황 Post를 삭제했을 때, Comment와 Like가 함께 삭제될 수 있도록 Post Entity에 Comment와 Like를 @OneToMany를 사용하여 cascade, orphanRemoval을 사용하여 엮었다. Post Entity @AllArgsConstructor @NoArgsConstructor @Getter @Builder @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @Entity @SQLDelete(sql = "UPDATE post SET deleted_at = current_timestamp WHERE id = ?") @Where(clause = "deleted_at is null") public cl..
[JPA] Soft Delete를 위한 @SQLDelete, @Where
·
Server/JPA
Hard Delete? Soft Delete? Delete 처리를 개발하던 도중, Soft Delete와 Hard Delete 두 방법이 존재한다는 것을 알게 되었다. Hard Delete는 물리 삭제라고도 하며, DB에서 해당 데이터를 실제로 삭제하는 것을 의미한다. Soft Delete는 논리 삭제라고도 하며, DB에서 해당 데이터가 삭제된 것을 하나의 컬럼을 이용하여 구분하는 것을 의미한다. 즉, Hard Delete의 경우에는 DB에 Delete Query를 날리게 되고 Soft Delete의 경우에는 DB에 Update Query를 날리게 된다. Soft Delete를 사용하는 이유? 그렇다면 Soft Delete를 왜 사용하게 되는 것일까? Hard Delete를 진행하게 되면 해당 글에 어떤..
[JPA] Update 후 해당 객체를 Return했을 때 @CreatedDate가 null 이 반환되는 상태에 대한 회고
·
Server/Spring&Spring Boot
서론 프로젝트를 진행하면서, 하나의 Update API를 개발하고 있었다. 요구사항에서는 update 후 해당 데이터의 정보를 Return 하도록 구성되어 있었다. 업데이트 처리 후 해당 객체를 바로 Return 하도록 진행하였는데, lastModifiedAt의 경우에는 update 쿼리가 날아간 시간이 잘 적혀있는 반면 createdAt은 Null로 반환되었다. 바로 DB를 실행시켜 해당 데이터를 확인했을 땐, createAt과 lastModifiedAt이 모두 들어있는 상황이었다. Comment Entity ... public class Comment extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private..
[MySQL Error] Error executing DDL alter table like drop foreign key via JDBC Statement. MySQL 예약어 에러
·
Server/Error
문제 발생 개발을 진행하고 있는 상황이므로 jpa.ddl-auto를 create-drop으로 계속 사용하던 도중, 다음과 같은 에러가 발생하기 시작했다. Error executing DDL alter table like drop foreign key via JDBC Statement Table을 생성하는 도중 계속해서 에러가 발생하였다. 문제 해결 좋아요 기능을 개발하면서 Entity의 이름을 'LIKE'로 지정하면서 발생하게 되는 문제였다. LIKE는 MySQL에서 사용되고 있는 예약어이므로 Entity의 이름으로 사용할 수 없도록 지정되어 있는 이름이었다. 기존 ENTITY ... public class Like extends BaseEntity { @Id @GeneratedValue(strategy..
[07] Like Api 개발
·
프로젝트/Archive
이전글 [06] Comment Api 개발 - 2 이전글 https://chordplaylist.tistory.com/231 댓글 조회 앤드포인트 GET /posts/{postId}/comments[?page=0] 리턴 { "resultCode": "SUCCESS", "result":{ "content":[ { "id": 3, "comment": "comment test3", "userName": "test", "postId": 2, "createdAt" chordplaylist.tistory.com Like API Like API를 개발하면서 삭제 방식을 Hard Delete에서 Soft Delete 방식으로 모두 전환하였습니다. DeleteAt이라는 변수를 Base Entity에 추가하여 Post, ..
코드플리
'JPA' 태그의 글 목록