
임베디드 타입 - 새로운 값 타입을 직접 정의할 수 있음 - JPA는 임베디드 타입이리ㅏ 함 - 주로 기본 값 타입을 모아서 만들어서 복합 값 타입이라고도 함 - int, String 같은 타입 - 회원 엔티티는 이름, 근무 시작일, 근무 종료일, 주소 도시, 주소 번지, 주소 우편번호를 가진다. - 하지만 평소에는 추상화해서 회원 엔티티는 이름, 근무기간, 집 주소를 가진다. 정도로만 이야기 한다. 이렇게 묶어 낼 수 있는 것은 임베디드 타입이라 한다. @Embeddeable : 값 타입을 정의하는 곳에 표시 @Embedded: 값 타입을 사용하는 곳에 표시 기본 생성자 필수 임베디드타입의 장점 - 재사용 - 높은 응집도 - Period.isWork()처럼 해당 값 타입만 사용하는 의미 있는 메소드를 ..
기본값 타입 - 엔티티 타입 ㄴ @Entity로 정의하는 객체 ㄴ 데이터가 변해도 식별자로 지속해서 추적 가능 ㄴ 예) 회원 엔티티의 키나 나이값을 변경해도 식별자로 인식 가능 값 타입 - int, Integer, String 처럼 단순히 값르로 사용하는 자바 기본 타입이나 객체 - 식별자가 없고 값만 있으므로 변경시 추적 불가 - 예) 100을 200으로 변경하면 완전히 다른 값으로 대체 기본값 타입 - 자바 기본 타입(int, double) - 래퍼 클래스 (Integer, Long) - String 임베디드 타입 (embedded type, 복합 값 타입) 컬렉션 값 타입(collection value type) 기본값 타입 설명 - 예) : String name, int age - 생명주기를 엔티..

package jpabook.jpashop.domain; import javax.persistence.*; @Entity public class Child { @Id @GeneratedValue private String id; private String name; @ManyToOne @JoinColumn(name = "PARENT_ID") private Parent parent; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } pub..
@ManyToOne(fetch = FetchType.LAZY)//지연로딩 @JoinColumn(name = "TEAM_ID", insertable = false, updatable = false) private Team team; Member 객체에서 fetch를 FetchType.LAZY로 사용하면 지연로딩이 된다. Team team = new Team(); team.setName("teatam"); Member member1 = new Member(); member1.setUsername("hello1"); member1.setTeam(team); em.persist(member1); em.flush(); em.clear(); Member findMember= em.find(Member.class, ..

예시이다. 객체를 사용하는데 계속 id,name이 모든 클래스 안에 반복적으로 들어간다. 이걸 공통으로 쓸 수는 없을까? package jpabook.jpashop.domain; import javax.persistence.Entity; import javax.persistence.MappedSuperclass; import java.time.LocalDateTime; @MappedSuperclass public class BaseEntity { private String createBy; private LocalDateTime createDate; private String lastModifiedBy; private LocalDateTime lastModifiedDate; public String ge..

상속관계 매핑 - 관계형 데이터베이스는 상속 관계x - 슈퍼타입 서브타입 관계라는 모델링 기법이 상속과 유사 - 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 - 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법이 있다. ㄴ 각각 테이블로 변환 -> 조인 전략 ㄴ 통합 테이블로 변환 -> 단일 테이블 전략 ㄴ 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 1. Item class package jpabook.jpashop.domain; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity public class Item { @Id @GeneratedV..

** 실무에서는 쓰면 안된다. 다대다 - 관계형 데이터 베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없음 - 연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야함 - 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계 가능 @ManyToMany Member class @ManyToMany @JoinTable(name = "MEMBER_PRODUCT") private List products = new ArrayList(); Product class @ManyToMany(mappedBy = "products") private List members = new ArrayList(); 한계 - 편리해 보이지만 실무에서 사용x - 연결 테이블이 단순히 연결만 하고 끝나지 않음 - 주문시간, 수량 ..

일대일 관계는 그 반대도 일대일 - 주 테이블이나 대상 테이블 중에 외래 키 선택 가능 - 주 테이블에 외래 키 - 대상 테이블에 외래 키 - 외래 키에 데이터베이스 유니크(UNI) 제약조건 추가 Locker @OneToOne(mappedBy = "locker") private Member member; Member @OneToOne @JoinColumn(name = "LOCKER_ID") private Locker locker; 일대일 : 주 테이블에 외래 키 양방향 정리 - 다대일 양방향 매핑처럼 외래 키가 있는 곳이 연관관계의 주인 - 반대편은 mappedBy 적용 - 단방향 관계는 JPA 지원 X - 양방향 관계는 지원 일대일 정리 - 주 테이블에 외래 키 ㄴ 주객체가 대상 객체의 참조를 가지는 ..
- Total
- Today
- Yesterday
- rejectValue
- filter
- thymleaf
- 항해플러스
- 백엔드 개발자 역량
- SpringBoot
- reject
- 향해99
- 스프링공부
- React
- Intercepter
- HTTP
- Java
- 로그인
- BindingResult
- 컨트
- 백엔드 개발자 공부
- 향해플러스백엔드
- 예외처리
- 리터럴
- 항해99
- react실행
- 스프링부트
- exception
- jpa api
- hypertexttransferprotocol
- 향해플러스
- ArgumentResolver
- JPA
- 인터셉터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |