1. 문제 상황 및 원인 - 출금 계좌 등록 요청을 보냈을 때, memberExtra 객체가 아직 영속성 컨텍스트에 등록되지 않은 상태에서 memberExtra를 member 엔티티의 memberExtra 필드에 저장하려고 할 때 에러가 발생했다. org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.example.mutbooks.app.member.entity.Member.memberExtra -> com.example.mutbooks.app.member.entity.MemberExtra at o..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 스프링 DB 접근 기술 4가지 방식대로 차례로 진행할 예정이다. 1. 순수 JDBC 2. JDBCTemplate 3. JPA 4. 스프링 데이터 JPA 1. 스프링 데이터 JPA를 이용한 코드 작성 스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고 개발해야할 코드도 확연히 줄어든다. 여기에 스프링 데이터 JPA를 사용하면 기존의 한계를 넘어 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다. 그리고 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA라는 환상적인 프..
1. Entity JPA에서 엔티티란 DB 테이블에 대응하는 하나의 클래스라고 생각하면 된다. ▶ @Entity @Entity 가 붙은 클래스는 JPA가 관리하며 DB의 테이블과 자바 클래스가 매핑이 된다. 1. 엔티티 Member 클래스 @Entity public class Member { Long id; String name; } 2. DB의 Member 테이블 id name 1 hello ▶ @Table 엔티티와 매핑할 테이블을 지정한다. ▶ @Id 식별키(PK, Primary Key) 로 매핑한다. ▶ @GeneratedValue(strategy) 식별키(PK, Primary Key) 를 자동 생성한다. ▶ @Column 객체 필드와 DB 테이블의 column을 매핑한다. 2. EntityMang..