728x90
🚨 오류 발생 지점 API모듈에서 Domain모듈을 implementation하여 사용하는 상황에서API모듈에서 Domain모듈의 의존성에 추가된 JPA 사용 시, 아래와 같은 오류가 발생했다.Cannot access 'org.springframework.data.jpa.repository.JpaRepository' which is a supertype of 'com.th.plu.domain.domain.member.repository.MemberRepository'. Check your module classpath for missing or conflicting dependencies 현재 의존성은 다음과 같이 연결된 상태이다.API모듈 -> Domain 모듈 implementation,Doma..
Spring JPA, @Modifying 어노테이션clearAutomatically, flushAutomatically JPA를 사용하여 개발하다보면 DB의 데이터를 수정 또는 삭제하기 위해 벌크 연산을 사용해야하는 상황이 종종 발생한다.이때 여러분들은 @Modifying 어노테이션을 붙여주어야 한다는 이야기를 들어봤을 것이다. 벌크연산이란?하나의 데이터가 아닌 여러 데이터를 한번에 수정하거나 삭제하는 연산 위 사진과 같이 JpaRepository를 상속받은 Repository 인터페이스의 메서드 중,벌크연산을 수행하는 메서드의 상단에@Modifying 어노테이션을 붙여주어야 한다. 실제로 Update 또는 Delete 쿼리에 해당 어노테이션이 붙어있지 않는다면QueryExecutionReque..
✔ JPA에서 가장 중요한 2가지1. 객체와 관계형 데이터베이스 매핑하기DB와 객체를 어떻게 설계해서 어떻게 매핑되도록 할 것인가(설계와 관련된 부분) 2. JPA의 동작원리영속성 컨텍스트 ⚙ 엔티티 매니저 팩토리와 엔티티 매니저클라이언트의 요청이 올때마다 EntityManagerFactory에서 EntityManager를 생성해서 제공한다.EntityManager는 내부적으로 DB Connection을 사용해서 DB를 사용하여 데이터를 제공함. 📦 영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어직역하자면 “엔티티를 영구 저장하는 환경”이라는 뜻EntityManger.persist(entity) 시에 DB에 저장한다는 뜻이 아닌 영속성 컨텍스트를 통해 엔티티를 영속화 한다는 뜻→ DB저장이 아닌, ..
JPA 와 MySQL 을 연동하여 사용하는 경우, 카멜표기법으로 컬럼 이름을 지정할 시에 컬럼명이helloData -> hello_data 와 같은 형태로 자동 변경되어 버리는 문제가 발생한다. (카멜 표기법이란 각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기하는 표기법이다.) 나도 이 문제 때문에 DB와 맵핑이 되지 않아서 애를 먹었다.. 내가 설정한 컬럼명은 prkplceNo 인데 prkplce_no 으로자동 변경되어 에러가 발생했다. 에러가 발생하는 과정을 먼저 보여주겠다. DTO 에 내가 지정한 이름으로 컬럼명을 작성한다. 테이블에도 @Column 어노테이션의 name 이랑 같게 컬럼명을 입력했다. 겉보기엔 아무 문제가 없을 것 같다. 하지만 문제는 이 프로..