(Project)Enum Converter
Enum Converter 현재 상황 Controller 와 Request 를 담당하는 DTO 에서 Enum 타입 을 사용하고 싶은데, 소문자로 데이터가 들어올 경우 아래 문구의 예외가 발생하는 문제가 있다. IllegalArgumentException: No enum constant team20.issuetracker.domain.i...
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_...
JPA의 다양한 쿼리 사용 방법 JPQL JPA 를 사용하게 되면 Entity 객체를 중심으로 개발하게 되는데, 검색 쿼리를 어떻게 처리해야할까? 검색을 할 때도 테이블이 아닌 Entity 객체를 대상으로 검색해야 한다. 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능에 가깝다. 애플리케이션이...
영속성 전이와 고아객체 영속성 전이(CASCADE) 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을때 사용한다. 엔티티 생성 일대다, 다대일 양방향 관계를 가지는 엔티티를 생성 @Entity public class Parent { @Id @GeneratedValue private Lo...