
자바 객체를 HTTP 응답 바디에 맵핑해준다.ResponseEntity에 자바 객체를 넣어 반환하거나 위 어노테이션을 설정하고 자바 객체를 직접 반환해도 된다.controller에 이 어노테이션을 설정하면 HTTP 응답 바디에 자바 객체를 맵핑해준다.(모든 반환값을 @

즉시 로딩과 지연 로딩을 설명하기 전에 프록시 객체에 대해서 알아야 한다. 프록시 객체는 간단하게 말하면 '데이터베이스 조회를 지연하는 가짜 객체'라고 말할 수 있다. 실제 엔티티 클래스를 상속 받아서 만들어지므로 겉 모양이 같아서 진짜 객체인지 프록시 객체인지 구분하

프로젝트를 진행하면서 List 형식을 컬럼 하나에 저장하고 싶은데 마땅한 방법이 없어서 찾다가 @Convert 라는 방식을 알게 되었다.이 방식은 List 로 저장 시켜준다기 보단 내가 원하는 형식으로 변환하여 저장 해준다는 표현이 적절하다.먼저, 나는 List 타입을

📌기존 JPQL 사용시 코드 📌@Query 사용시 코드 특징 > - JPQL과 다르게 애플리케이션 실행 시점에 문법 오류를 발견할 수 있다. @Param이 파라미터 바인딩 역할을 수행한다. 코드가 명확하고 간결해진다. 📌DTO 매핑 방법 > DTO >@

순수 JPA 페이징 정렬

순수 JPA 벌크성 수정 쿼리 >쿼리 코드 > 인자로 받아온 나이 이상인 사람의 나이를 +1 해서 update 하는 쿼리 > 테스트 코드

JPA에서 FetchType을 Lazy로 설정할 경우 문제 상황 > Member > Team Memebr와 Team 객체가 N:1 관계에 있다. 이때 Member 객체를 조회한 후 연관관계에 있는 Team 객체를 사용한다면? > > FetchType이 Lazy

📌JPA Hint JPA 쿼리 힌트(SQL 힌트가 아니라 JPA 구현체(하이버네이트)에게 제공하는 힌트) > 테스트 코드 > flush 될 때 원본 데이터와 비교해서 변경된 부분이 있으면 자동으로 update 쿼리를 생성한다. 만약에 데이터를 조회만 할 경우

spring data JPA 리포지토리는 인테페이스만 정의하고 구현체는 spring이 자동 생성한다.spring data JPA가 제공하는 인터페이스를 직접 구현한다면 구현해야 하는 기능이 너무 많아진다. 필요한 기능만 인터페이스로 따로 만들어서 구현하고 이후에 dat

@PrePersit 를 적용하면 값이 저장(save)될 때 자동으로 실행된다.@PreUpdate 를 적용하면 값이 수정(update)될 때 자동으로 실행된다.테스트 코드수정일과 생성일 속성이 자동으로 생성되고 값이 정상적으로 들어갔다.Data JPA 사용시 Applic

📌페이징 요청 > 컨트롤러 코드 > init 데이터 > 회원 데이터 100개 초기화 된다. 로 요청을 보내면 아래와 같이 페이징된 결과가 반환된다. 아무런 조건을 주지 않았기 때문에 기본값인 첫 페이지의 20개의 데이터가 반환된다. json { "

@Repository컴포넌트 스캔의 대상이 되어 IoC 컨테이너에 등록된다.JPA, JDBC는 exception이 다르기 때문에 spring에서 제공하는 exception으로 변경된다.하부 구현체를 바꿔도 기존 비즈니스 로직에 영향을 주지 않는다.@Transaction

엔티티 대신에 DTO를 편리하게 조회할 때 사용된다.전체 엔티티가 아닌 회원이름만 조회하고 싶다면?인터페이스를 만들고<>안에 해당 인터페이스 이름을 넣어주면 된다.테스트 코드JPA가 생성한 쿼리username만 select해서 결과를 반환해준다.클래스를 만들고&l

servlet은 url과 1:1로 매핑이 되게 되는데 이럴 경우 각 servlet의 공통 로직이 많아 질수록 중복되는 코드가 많아지게 된다. 이를 해결하고자 Front Controller 패턴이 탄생하게 되었다.서버 최앞단에 클라이언트의 모든 요청을 받는 Control

포스팅에 앞서 그런 REST API로 괜찮은가 강의가 Hateoas를 이해하는데 큰 도움이 되었습니다.Hypermedia as the engine of application state의 약자로 HATEOAS를 사용하면 클라이언트는 애플리케이션 서버가 하이퍼미디어를 통해

애플리케이션을 개발할 때 중요한 데이터는 대부분 데이터베이스에 보관한다. 클라이언트가 애플리케이션 서버를 통해 데이터를 저장하거나 조회하면, 애플리케이션 서버는 다음 과정을 통해서 데이터베이스를 사용한다.커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결한다.SQ

먼저 데이터베이스 접속에 필요한 정보를 편하게 사용하기 위해 상수로 만들어준다. 이후 JDBC를 사용하여 데이터베이스에 연결하는 코드를 작성한다.JDBC가 제공하는 DriverManager.getConnection(...) 을 사용하면 된다. 이렇게 하면 라이브러리에