본문 바로가기

웹 개발/JPA2

deleteAllByIdInBatch는 영속성 컨텍스트를 동기화하지 않는다 (feat.문서를 잘 읽자…) delete 관련 기능을 개발하다가 trouble shooting(?)한 경험을 간단히 공유합니다. JpaRepository의 deleteAllByIdInBatch 메서드를 사용하는 서비스 코드를 테스트하는 과정에서, 분명 delete 쿼리가 로그에 찍히는데 findById로 조회를 하면 데이터가 남아있는 문제가 있었습니다. 이해하기 쉽게 예시를 다시 구성해보면 @Test void Space삭제() { Host host = hostRepository.save(Host_생성("1234")); Space space = spaceRepository.save(Space_생성(host, "잠실 캠퍼스")); Job job1 = jobRepository.save(Job_생성(space, "청소")); Job job.. 2022. 7. 18.
[JPA] JPA는 왜 사용하나요? JPA란 무엇인가 JPA(Java Persistence API)는 javax.persistence 패키지에 정의되어 있는 자바 진영의 ORM 기술 표준이다. ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스를 매팡한다는 것인데, 쉽게 말하면 객체를 데이터베이스에 저장할 때 마치 자바 컬렉션에 저장하듯이 SQL문을 직접 작성하지 않고도 프로그래밍할 수 있도록 도와주는 기술이다. JPA는 자바 ORM 기술에 대한 API 표준 명세, 즉 인터페이스의 집합이다. 따라서 JPA를 사용하려면 JPA를 구현한 ORM 프레임워크를 사용해야한다. 대표적으로 하이버네이트, EclipseLink, DataNucleus 등이 있다. 출처: 자바 ORM 표준 JPA 프로그래밍 왜 JPA를 사용.. 2021. 7. 13.