(JPA)엔티티 업데이트 시 발생한 문제(Dirty Checking, @PreUpdate)
엔티티 업데이트 시 발생한 문제(Dirty Checking, @PreUpdate) 제목을 딱 짧고 명확하게 하기 어려워 주저리 주저리 썼다. 문제 상황 글을 작성하고, 수정할 수 있는 간단한 프로젝트를 하던 와중에 글(Post) 을 수정할때 수정 시간을 @PreUpdate 를 통해 값을 넣어주고 있었는데 여기서 문제가 발생하였다. ...
엔티티 업데이트 시 발생한 문제(Dirty Checking, @PreUpdate) 제목을 딱 짧고 명확하게 하기 어려워 주저리 주저리 썼다. 문제 상황 글을 작성하고, 수정할 수 있는 간단한 프로젝트를 하던 와중에 글(Post) 을 수정할때 수정 시간을 @PreUpdate 를 통해 값을 넣어주고 있었는데 여기서 문제가 발생하였다. ...
테스트 중 @Value Null 문제 문제 상황 JWT 를 활용하는 프로젝트를 진행하는 도중에 외부에 노출되어서는 안되는 값을 local.yml 파일에 등록하여 관리하고 있었는데 단위 테스트를 진행하면서, @Value 를 통해 local.yml 파일에 명시 해둔 값을 가져오는 과정에서 값을 가져오지 못하고 null 값으로 처리되는 문제가 발생 ...
Enum Converter 현재 상황 Controller 와 Request 를 담당하는 DTO 에서 Enum 타입 을 사용하고 싶은데, 소문자로 데이터가 들어올 경우 아래 문구의 예외가 발생하는 문제가 있다. IllegalArgumentException: No enum constant team20.issuetracker.domain.i...
페이징 처리 시 발생한 문제 문제 상항 현재 Issue및 Page 상태 - Issue Entity는 Member와 Milestone Entity에 대해 @ManyToOne 관계를 맺고 있다. - Milestone 의 경우 Issue에 등록 되어 있을 수도 있고 없을 수도 있다. - Issue 를 OPEN, COLSE 상태 별로 전체...
API 최적화(N+1) 모든 Issue 조회 API 모든 Issue 조회 시 하나의 Issue마다 8개의 SELECT QUERY가 발생 하나의 Issue에 Milestone, Label, Comment, Assignee가 각 1개 있는 기준 각기 다른 Label, Milestone, Comment, Assignee...
기본값 타입 JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적이 가능하다. 회원이나, 팀 엔티티의 필드 값이 변경되더라도 식별자로 인식이 가능하다. 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입...
값 타입과 불변객체 값 타입 공유 참조 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험하다. side effect 가 발생 할 가능성이 높아진다. 값 타입 복사 값 타입의 실제 인스턴스인 값을 공유하는것은 위험하다. 인스턴스 값을 복사해서 사용하는 것이 안전하다. 객체 타입의 한계 ...
JPQL 프로젝션 프로젝션 SELECT 절에 조회할 대상을 지정하는 것 DESTINCT 로 중복 제거 가능하다. 대상: Entity, EmbeddedType, ScalaType SELECT m FROM Member m // Entity 프로젝션 SELECT m.team FROM Member m // Entity 프로젝션 SELEC...
JPQL 조인 조인 종류 내부 조인 SELETE m FROM Member m [INNER] JOIN m.team t Team team = new Team(); team.setName("teamA"); em.persist(team); Member member = new Member(); member.setUsername("member");...
JPQL 기본문법 JPQL(Java Persistence Query Language)? JPQL 은 Entity 2022객체 대상으로 쿼리 한다. JPQL 은 특정 데이터베이스 SQL 에 의존적이지 않다. JPQL 은 결국 SQL 로 변환되어 실행된다. JPQL 문법 select_문 :: = select_절 from_...