# spring jpa

[Spring JPA] 1. 타임리프(Thymeleaf) layout 설정
타임리프(Thymeleaf)의 layout을 설정합니다.build.gradle안에 dependencies에 아래의 코드를 추가하고 Rebuild를 합니다.External Libraries에서 아래의 라이브러리가 추가되었는지 확인합니다.아래와 같이 templates에 폴

[Spring JPA] 0. 게시판 프로젝트 셋팅
목표 프로젝트 생성 및 셋팅을 기본으로 하고 Thymeleaf의 layout설정과 controller의 생성을 목표로 합니다. 0. 개발환경 JAVA11 IntelliJ Spring Data JPA QueryDsl H2 DataBase Thymeleaf BootStr
[Spring JPA] 계층형 댓글 (1)
JPA 와 QueryDsl 사용한 계층형 댓글 구현 -1- 선 요약 : 엔티티: 셀프참조로 부모 댓글과 자식 댓글 리스트 참조 댓글저장: parentId 값을 통해 부모를 지정 댓글조회: 부모가 없는 댓글 먼저, 그 후에 생성날짜 내림차순으로 정렬 댓글조회+: 정렬 후 ResponseDto 객체에 JSON 형식으로 댓글 구조 생성 후 응답 ...
[Spring JPA] QueryDsl 맛보기
🚀 QueryDsl 세팅 후 간단 사용법 JPAQueryFactory를 Bean으로 등록하여 프로젝트 전역에서 QueryDSL을 작성할 수 있도록 한다 repository 인터페이스를 정의한다 인터페이스를 구현할 Impl 클래스를 만든다 Impl 클래스 내에서 QueryDsl을 사용한다. 아래 코드들은 계층형 댓글을 만들며 사용한 QueryDsl 예제...
[JPA 1] 시작
오늘은 JPA 공부에 대한 내용을 적어보려고 한다.아래는 내가 공부하게 된 이유와 왜 어떤 방식으로 공부했는지를 간단히 설명하였다.

QueryDSL로 검색 + 페이징하기
이번 포스팅은 QueryDSL 이용해서 목록 페이징 + 검색을 위한 데이터 조회 방법에 대해 다루고자 한다.queryDSL 사용 설정은 다른 포스팅에서 다룰 예정이다. 그럼 시작해보자고~!예로 사용자 목록 검색하는 코드를 queryDSL으로 짜보자!springJPA에서

엔티티 애노테이션
Entity Annotation@ToString : effective java item 12 toString을 항상 재정의하라재정의 했다면, System.out.println(article)와 같이 작성하면 내부 내용을 볼 수 있으므로 디버깅하기 쉽다.Map 과 같은

엔티티 매핑
연관관계 매핑 : 멤버와 팀, 회원이 어디 소속되어있는지 1대다 , 다대1 다대다객체와 테이블 매핑 : @Entity, @Table필드와 칼럼 매핑 : @Column기본 키 매핑 : @Id@Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.기본 생성자 필수 :

준영속 상태
JPA가 관리하는 상태관리대상에서 제외하는 것update,dirtychecking등 사용 불가됨em.detach로 가능,관리를 안하기 때문에 변화가 있더라도 결과가 진행되지 않음update가 되지 않은 것을 확인clear 는 영속성 상태의 엔티티들을 전부 제거persi

Flush
변경을 감지하고수정된 엔티티를 쓰기 지연 SQL저장소에 등록한 후.쓰기 지연 SQL저장소의 쿼리를 데이터베이스에 전송하는 것이다.em.flush()로 직접 호출 가능하다.트랜잭션을 커밋하면 flush가 자동 호출된다.커밋전에 flush호출로 쿼리가 실행된것을 확인할 수

영속성 컨텍스트II
조회를 하면 jpa는 영속성 컨텍스트에서 1차캐시를 탐색한다. 1차캐시에 멤버엔티티가 있으면 그 값을 조회함, 디비를 거치지 않는다. 없으면 JPA가 DB에서 조회하고, 1차캐시에 저장 이후 반환한다.실무에선 고객의 비즈니스가 끝나면 영속성, 1차캐시를 지우기 때문에

영속성 컨텍스트
객체와 관계형 데이터베이스 매핑(정적)영속성 컨텍스트 : 실제 어떻게 JPA가 내부에서 동작하는지 원리엔티티를 영구 저장하는 환경 이라는 뜻EntityManager.persist(entity)로 실행 가능영속성 컨텍스트는 논리적인 개념엔티티 매니저를 통해 영속성컨텍스트

애플리케이션 생성2
JPA 를 이용해 스프링 애플리케이션을 생성하고 삽입, 수정, 삭제를 진행해보았다.객체를 생성하고 매핑하여 실제 데이터베이스에 해당 객체를 삽입할 수 있다.엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유한다.엔티티 매니저는 쓰레드간에 공유해서는 안된다

Jpa 프로젝트생성
JPA Prjoect에 사용될 프로젝트를 생성해보았다.실습용 데이터베이스로는 H2데이터베이스를 사용했다.ㄴ자바 라이브러리, 빌드 관리ㄴ라이브러리 자동 다운로드 및 의존성 관리ㄴJAVA 8ㄴ/META-INF/persistence.xml에 해당 파일을 위치시킨다. 기본 위

[Kotlin Spring Boot] Security, JPA 환경에서 H2 In-memory DB 구축하기
현재 회사에서 스프링 부트 프로젝트를 자바로 진행하고 있는데, 이 프로젝트가 끝나면 이후 프로젝트는 코틀린으로 진행해볼까 한다.그러기에 앞서 코틀린을 공부를 해야하는데, 코틀린을 곁들인(?) 스프링 부트로 간단히 백오피스 같은 느낌으로 개발 체크리스트 토이프로젝트를 만
스프링 @PagebleDefault
스프링 JPA는 페이지 처리와 정렬을 api에서 지원PageRequest.of(페이지,10개씩)마지막 파라미터에 sort추가 가능value() = size()에 대한 별칭page() = 현재 페이지size() = 한 페이지에 노출할 데이터 건수

[JPA] 압축 공부 (Spring Data JPA를 곁들인..)
오늘은 이전에 공부를 했었던 JPA에 대해서 다시 복습할겸 공부를 할 것이다. 정리하여 공유까지 한다.
실전! 스프링 부트와 JPA 활용 1 - 프로젝트 환경설정까지 듣고 난 뒤 정리
spring boot start page 가기스프링 부트는 스프링 프로젝트를 쉽게 만들 수 있게 한다.maven과 gradle을 선택할 수 있는데, 요즘은 gradle로 많이 넘어가는 추세.언어는 자신이 사용 할 언어를 추가하면 된다. 듣고 있는 강의는 Java를 사용
[Spring Data JPA] @OnetoOne
one-to-one multiplicit를 가진 다른 entity들의 단일 연결을 정의한다.일반적으로 참조되는 객체의 형식에서 관계를 유추할 수 있어 entity를 명시적으로 지정할 필요가 없다.관계가 양방향인 경우 MappedBy 요소를 사용해 관계 필드 or 속성