이전까지는 JSON데이터 자체를 JAVA에서 출력하는 것을 했는데, API 데이터를 활용하기 위해서는 JSON데이터를 파싱하여 내가 원하는 형태로 JPA에 저장해보도록 하겠다.우선 Entity를 구현해 보도록 하겠다. API에서 제공하는 필드들은 여러가지지만 내가 원하
📌API는 보통 JSON 또는 XML형태로 제공하기 때문에 활용하려면 API데이터를 파싱하여 JAVA데이터로 받아야한다.내가 원하는 대로 사용하기 위해 차근차근 API를 JSON형태로 JAVA로 가져오고, 그걸 파싱하고 마지막으로 JPA를 이용하여 DB에 저장해 보도
개인프로젝트에서 공공데이터 API를 이용하여 데이터를 가져올 일이 생겼다.특정시의 구와 동을 가져오고 싶어서, 행정동 데이터를 검색하기 시작했다.공공 데이터 포털(https://www.data.go.kr/index.do)에서 다양한 OPEN API를 찾아볼 수
실무에서 자주 사용되며 정말 중요하다SQL 조인 종류는 아니고 JPA에서 제공하는 기능JPQL에서 성능 최적화를 위해 제공하는 기능연관된 엔티티나 컬렉션을 SQL 한번에 함께 조회하는 기능join fetch 명령어 사용페치 조인 :: = \[LEFT OUTER|INNE
Item : 부모객체Album, Movie, Book : 자식 객체조회 대상을 특정 자식으로 한정예) Item 중 Book, Movie를 조회하라자바의 타입 캐스팅과 유사(형변환)상속 구조에서 부모 타입을 특정 자신 타입으로 다룰 때 사용FROM, WHERE, SELE
.(점)을 찍어 객체 그래프를 탐색하는 것상태 필드(state field) : 단순히 값을 저장하기 위한 필드(ex:m.username)연관 필드(association field) : 연관관계를 위한 필드단일 값 연관 필드 : @ManyToOne, @OneToOne,
SELECT 절에 조회할 대상을 지정하는 것조회한 대상은 JPA가 영속성 컨텍스트로 관리한다프로젝션 대상 : 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자 등 기본 데이터 타입)Query 타입으로 조회Object\[] 타입으로 조회new 명령어로 조회단순 값을 DT
JPQL은 객체지향 쿼리 언어다. ➡️ 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다.JPQL은 SQL을 추상화해서 특정데이터베이스 SQL에 의존하지 않는다JPQL은 결국 SQL로 변환된다.JPQL의 기본 문법과 쿼리API에 대해 알아보자 S
JPQLJPA CriteriaQueryDSL네이티브 SQLJDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용가장 단순한 조회 방법EntityManager.find()객체 그래프 탐색(a.getB().getC())📌나이가 18살 이
값 타입 컬렉션 값 타입을 컬렉션으로 넣어서 쓰는 것을 의미 @ElementCollection, @CollectionTable 사용 데이터베이스는 컬렉션을 같은 테이블에 저장할 수 없다. 일대다로 풀어서 별도의 테이블로 만들어야 한다. 컬렉션을 저장하기 위한 별도의
JPA의 데이터 타입 분류 1. 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 회원 엔티티의 키나 나이를 변경해도 식별자로 인식 가능 2. 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자
영속성 전이(CASCADE) 특정 엔티티를 영속 상태로 만들 때, 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 사용 ex) 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장 영속성 전이 - 저장 주의할 점 영속성 전의는 연관관계를 매핑하는 것과 아무 관련이 없
Team과 Member가 1:N으로 매핑된다고 가정해보자. 이때 Member를 조회할 때 Team도 함께 조회해야할까? 비즈니스 로직에서 Team을 필요로 하지 않을 때에는 꼭 TEAM도 같이 조회할 필요가 없다. ➡️ JPA는 이런 낭비(성능저하)를 하지 않기 위해
엔티티 사이에 공통 매칭 정보가 필요할 때 사용한다(예시에선 id, name) 📌 요구사항 누가 언제 생성했는지(createdBy, createdDate)누가 언제 마지막으로 수정했는지 (lastModifiedBy, lastModifiedDate) 에 관한 정보를
상속관계 매핑 관계형 데이터베이스는 상속 관계가 없다. 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속관계 매핑 : 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각
다중성다대일(@ManyToOne)일대다(@OneToMany)일대일(@OneToOne)다대다(@ManyToMany)단방향, 양방향테이블 : 외래키 하나로 양쪽 조인 가능. 방향이라는 개념이 없다객체 : 참조용 필드가 있는 쪽으로만 참조가능. 한쪽만 참조하면 단방향, 양쪽
📌요구사항회원과 팀 엔티티가 있다.회원은 하나의 팀에만 소속될 수 있고, 하나의 팀에는 여러명의 회원이 소속 될 수 있다.회원과 팀은 다대일 관계다.@ManyToOne : 다대일 관계임을 알려줌.하나의 팀에 여러멤버가 소속되므로 멤버가 N, 팀이 1이다.@JoinCo
객체와 테이블 매핑 : @Entity, @Table필드와 컬럼 매핑 : @Column기본 키 매핑 : @Id연관관계 매핑 : @ManyToOne,@JoinColumn @Entity가 붙은 클래스는 JPA가 관리하며, 엔티티라고한다.JPA를 사용해서 테이블과 매핑할 클래
jpa를 이해하는데 가장 중요한 용어엔티티를 영구 저장하는 환경이라는 뜻EntityManager.persist(entity);엔티티 매니저를 통해 영속성 컨텍스트에 접근한다.영속성 컨텍스트와 전혀 관계가 없는 새로운 상태member 객체를 생성했을 뿐, 영속성 컨텍스트
인텔리제이로 테스트 코드 작성 중에 한글 깨짐 현상을 발견했다.이럴 때 해결방법!Shift를 두번 누른다edit vm 작성 후 맨 위에 나오는 Edit Custom VM Option 클릭!자동으로 열리는 파일에 하단 코드 작성인텔리제이 재부팅재부팅 후 테스트 코드 실행