값 타입 컬렉션 - 값 타입을 하나 이상 저장할 때 사용 - @ElementCollection, @CollectionTable 사용 - 데이터베이스는 컬렉션을 같은 테이블에 저장할 수 없다. - 컬렉션을 저장하기 위한 별도의 테이블이 필요함 package jpabook.jpashop.domain; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @Entity public class Member extends BaseEntity{ @Id @GeneratedValue priv..
값 타입의 비교 - 동일성(identity) 비교 : 인스턴스의 참조 값을 비교, == 사용 - 동등성(equivalence) 비교 : 인스턴스의 값을 비교, equals() 사용 - 값 타입은 a.equals(b)를 사용해서 동등성 비교를 해야 함 - 값 타입의 equals() 메소드를 적절하게 재정의 (주로 모든 필드 사용) 값을 비교하기 위해서 equals로 값 비교로 사용한다. package jpabook.jpashop.domain; import javax.persistence.Embeddable; import java.util.Objects; @Embeddable public class Address { private String city; private String street; private..
- 값 타입은 복잡한 객체 세상을 조금이라도 단순화하려고 만든 개념이다. 따라서 값 타입은 단순하고 안전하게 다룰 수 있어야 한다. 값 타입 공유 참조 - 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험함 - 부작용 (side effect) 발생 부작용이 있는 것은 이런 코드인데 Address address = new Address("city", "street", "zup"); Member member1 = new Member(); member1.setUsername("hello1"); member1.setAddress(address); em.persist(member1); Member member2 = new Member(); member2.setUsername("hello2"); memb..
임베디드 타입 - 새로운 값 타입을 직접 정의할 수 있음 - 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 - 생명주기를 엔티..
- Total
- Today
- Yesterday
- 스프링부트
- 향해플러스백엔드
- 항해99
- thymleaf
- hypertexttransferprotocol
- rejectValue
- 컨트
- filter
- HTTP
- Java
- ArgumentResolver
- React
- JPA
- SpringBoot
- 향해99
- 리터럴
- 인터셉터
- react실행
- Intercepter
- 향해플러스
- BindingResult
- exception
- 스프링공부
- 로그인
- 항해플러스
- 예외처리
- jpa api
- 백엔드 개발자 공부
- reject
- 백엔드 개발자 역량
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |