JPA

BackEnd/Spring

[SpringBoot] 멀티모듈 환경 JPA 접근 오류 해결

🚨 오류 발생 지점 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, Dom..

BackEnd/Spring

[JPA] @Modifying 어노테이션 - clearAutomatically, flushAutomatically란?

Spring JPA, @Modifying 어노테이션 clearAutomatically, flushAutomatically JPA를 사용하여 개발하다보면 DB의 데이터를 수정 또는 삭제하기 위해 벌크 연산을 사용해야하는 상황이 종종 발생한다. 이때 여러분들은 @Modifying 어노테이션을 붙여주어야 한다는 이야기를 들어봤을 것이다. 벌크연산이란? 하나의 데이터가 아닌 여러 데이터를 한번에 수정하거나 삭제하는 연산 위 사진과 같이 JpaRepository를 상속받은 Repository 인터페이스의 메서드 중, 벌크연산을 수행하는 메서드의 상단에 @Modifying 어노테이션을 붙여주어야 한다. 실제로 Update 또는 Delete 쿼리에 해당 어노테이션이 붙어있지 않는다면 QueryExecutionRequ..

BackEnd/Spring

[JPA] 영속성 관리 - 내부 동작 방식

✔ JPA에서 가장 중요한 2가지1. 객체와 관계형 데이터베이스 매핑하기 DB와 객체를 어떻게 설계해서 어떻게 매핑되도록 할 것인가(설계와 관련된 부분) 2. JPA의 동작원리 영속성 컨텍스트 ⚙ 엔티티 매니저 팩토리와 엔티티 매니저클라이언트의 요청이 올때마다 EntityManagerFactory에서 EntityManager를 생성해서 제공한다.EntityManager는 내부적으로 DB Connection을 사용해서 DB를 사용하여 데이터를 제공함. 📦 영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어직역하자면 “엔티티를 영구 저장하는 환경”이라는 뜻EntityManger.persist(entity) 시에 DB에 저장한다는 뜻이 아닌 영속성 컨텍스트를 통해 엔티티를 영속화 한다는 뜻→ DB저장이 아닌,..

스터디

[SpringBoot] Spring Data Jpa 사용 / Bean 등록

Spring Data Jpa란 spring framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트이며 CRUD 처리를 위한 공통 인터페이스를 제공해준다. 동아리에서 프로젝트를 진행하며 Spring Data Jpa를 사용하여 레퍼지토리를 만들었는데 전에 Jpa만 사용하던 방식보다 훨씬 편리하기 때문에 과정을 기록해보려 한다. 바로 시작하겠다. Entity 생성 우선 엔티티를 생성해야 한다. User에 관해 생성할 것이므로 User라는 클래스를 하나 만들었다. User.java @Getter @NoArgsConstructor @Table(name = "USER") @Entity public class User { @Id @GeneratedValue(strategy = GenerationT..

카테고리 없음

[SpringBoot] [어따세워] BufferedReader로 CSV파일 파싱하기!(2)

지난 시간에는 가벼운 정보만 담겨있는 샘플 CSV파일을 파싱해보는 과정을 포스팅했다. (지난 게시글 보러가기) [SpringBoot] [어따세워] BufferedReader로 CSV파일 파싱하기!(1) 지난 시간엔 'Servlet Controller' 'JPA' 'MySQL' 을 이용해 회원 정보 등록 기능을 구현했다. https://pgmjun.tistory.com/8 [Spring] [어따세워] Servlet, JPA, MySQL 이용해서 회원가입 서비스 만들기!(2) 지난.. pgmjun.tistory.com 이번 포스팅은 샘플자료가 아닌 실제 사용할 데이터가 담긴 CSV을 파싱하여 DB에 저장하는 과정과, 구현하지 않았던 findByAddr(), findByLocation(), findAll() ..

스터디

[SpringBoot] JPA 카멜케이스 컬럼명 적용법

JPA 와 MySQL 을 연동하여 사용하는 경우, 카멜표기법으로 컬럼 이름을 지정할 시에 컬럼명이 helloData -> hello_data 와 같은 형태로 자동 변경되어 버리는 문제가 발생한다. (카멜 표기법이란 각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기하는 표기법이다.) 나도 이 문제 때문에 DB와 맵핑이 되지 않아서 애를 먹었다.. 내가 설정한 컬럼명은 prkplceNo 인데 prkplce_no 으로 자동 변경되어 에러가 발생했다. 에러가 발생하는 과정을 먼저 보여주겠다. DTO 에 내가 지정한 이름으로 컬럼명을 작성한다. 테이블에도 @Column 어노테이션의 name 이랑 같게 컬럼명을 입력했다. 겉보기엔 아무 문제가 없을 것 같다. 하지만 문제는 이 프로그이 실..

Language/JAVA

[Java] BufferedReader로 CSV파일 파싱하기!(1)

지난 시간엔 'Servlet Controller' 'JPA' 'MySQL' 을 이용해 회원 정보 등록 기능을 구현했다. (지난 게시글 보러가기) [Spring] [어따세워] Servlet, JPA, MySQL 이용해서 회원가입 서비스 만들기!(2) 지난 시간에는 'User DTO'와 'JPA를 통해 User 데이터를 DB에 저장하기 위한 Repository와 Service 클래스'를 구현해보았다. (지난 게시글: https://pgmjun.tistory.com/7) Test t pgmjun.tistory.com 이어서 오늘.. pgmjun.tistory.com 이번에는 BufferedReader를 이용해 주차장 데이터가 들어있는 CSV 파일을 파싱해서 DB에 저장해주는 기능을 개발해볼 것이다. 파싱해온 ..

PgmJUN
'JPA' 태그의 글 목록