초록꼬마의 devlog
pageable
back-end dev/JPA 2023. 8. 24. 23:59

JPQL 사용
back-end dev/JPA 2023. 8. 19. 23:33

article thumbnail
flush(플러시)
back-end dev/JPA 2023. 8. 9. 22:01

🌿 정의 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티/영속성 컨텍스트의 변경 내용을 데이터베이스에 반영/동기화하는 것 🌿 의미 변경 감지가 동작해서 영속성 컨텍스트에 있는 모든 엔티티를 스냅샷과 비교 수정된 엔티티를 찾음 → 수정된 엔티티는 수정 쿼리를 만들어 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리(등록, 수정, 삭제)를 데이터베이스에 전송 🌿 방법 🌱 영속성 컨텍스트를 flush하는 방법 em.flush() 호출 트랜잭션 커밋 시 자동 호출됨 JPQL 쿼리 실행 시 자동 호출됨 🌱 옵션 FlushModeType.AUTO FlushModeType.COMMIT References 자바 ORM 표준 JPA 프로그래밍(2015, 에이콘)

error log 1
back-end dev/JPA 2023. 7. 31. 07:47

update
back-end dev/JPA 2023. 7. 29. 23:49

재귀적/자기참조/순환 관계를 JPA에서 구현하기
back-end dev/JPA 2023. 7. 21. 23:42

References https://medium.com/@jason.moon.kr/selfjoin-relation-in-jpa-58942284d72 https://velog.io/@guswns3371/JPA-순환-참조-self-참조

article thumbnail
영속성 컨텍스트 (Persistence Context)
back-end dev/JPA 2023. 5. 28. 08:43

🌿 의미 엔티티를 영구 저장하는 환경 엔티티 매니저(EntityManager, 엔티티를 관리하는 객체)로 엔티티를 저장/조회 → 엔티티 매니저는 영속성 컨텍스트에 접근 + 엔티티 보관/관리 EntityManager의 역할 영속성 컨텍스트에 접근하기 위한 수단으로 사용됨 데이터베이스에 접근해서 CRUD 작업 수행 엔티티를 영속성 컨텍스트에 추가해서 영속 객체로 만듦 영속성 컨텍스트와 데이터베이스를 비교하며 실제 데이터베이스를 대상으로 작업 수행 🌿 기능 애플리케이션과 데이터베이스 사이에서 엔티티와 레코드의 괴리를 해소 객체 보관 🌿 특징 세션 단위의 생명주기를 가짐 🌿 용어 🌱 영속 객체 (Persistence Object) 엔티티 객체가 영속성 컨텍스트에 들어와 JPA의 관리 대상이 되는 시점부터 해당 ..

article thumbnail
[Spring Data JPA] data access 계층 구현
back-end dev/JPA 2022. 11. 3. 20:00

🌿 Spring Data JPA 개요 Spring Data JPA는 Spring Data Project의 하위 프로젝트 중 하나로, JPA에 특화된 기능을 제공 Spring Data Project = JPA, 몽고DB, REDIS, HADOOP 등 다양한 데이터 저장소에 대한 접근을 추상화함 → 개발자 편의 제공 + 지루하게 반복되는 데이터 접근 코드 줄여줌

article thumbnail
JPA (Java Persistence API)
back-end dev/JPA 2022. 8. 2. 01:52

🌿 JPA 🌱 개념 Java 진영의 ORM 기술 표준으로 채택된 인터페이스의 모음(동작 메커니즘을 정리한 표준 명세) 내부적으로 JDBC 사용 + 개발자 대신 적절한 SQL문 생성, 데이터베이스 조작 + 객체 자동 매핑 구현체 = Hibernate(가장 많이 사용됨), EclipseLink, DataNucleus MyBatis vs JPA 🌿 Spring Data JPA 🌱 개념 JPA가 정의하는 인터페이스를 구현하고 있는 JPA 구현체인 Hibernate의 기능을 더욱 편하게 사용하도록 모듈화한 것/library 스프링 하위 프로젝트 중 하나 🌱 기능 CRUD 처리에 필요한 인터페이스 제공 Hibernate의 EntityManager를 직접 다루지 않고, 리포지토리 정의해서 사용 → 스프링이 적합한 쿼..