일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스프링부트 OpenAI API
- springboot
- Git
- JPA
- swap 메모리
- 두수의 합 자바
- 자바
- Chat GPT
- 값 타입
- 스프링 이메일 전송
- 넘파이
- 저장소 복제
- Servlet
- 비밀번호 재설정 API
- JDBC
- 저장소 이전
- 파이썬
- jar빌드
- Json 객체
- 프로그래머스
- github 복제
- api 개발
- HttpServletResponse
- MySQL
- JPQL
- 페이징 정렬
- git 충돌 해결
- MVC
- 우분투
- 서버 배포
- Today
- Total
목록값 타입 (5)
현의 개발 블로그

값 타입 컬렉션 값 타입을 컬렉션에 담아서 쓰는 것을 말한다. 값 타입 컬렉션은 값을 하나 이상 저장할 때 사용한다. 데이터베이스는 컬렉션을 같은 테이블에 저장할 수 없다. 컬렉션을 저장하기 위한 별도의 테이블이 필요하다. 컬렉션은 1:N 개념이기 때문에, DB는 컬렉션을 하나의 테이블에 저장할 수 없기 때문이다. 별도의 식별자 아이디를 넣어 pk로 만들면, 해당 객체는 값 타입이 아니라 엔티티가 된다. 따라서 기존 컬럼들을 묶어 pk로 구성해야 한다. 컬렉션 하위 인터페이스 Set과 List를 컬렉션으로 사용할 수 있다. @Embedded private Address homeAddress; @ElementCollection @CollectionTable(name = "FAVORITE_FOOD", joi..

값 타입 비교 값 타입은 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 한다. 그런데 객체의 경우에는 == 비교 시 false가 반환된다. 객체 a와 b는 각각 다른 참조값을 갖고 있기 때문이다. int a = 10; int b = 10; System.out.println(a==b); //true Address a = new Address("city", "street", "zipcode"); Address b = new Address("city", "street", "zipcode"); System.out.println(address1 == address2); //false 값 타입의 비교는 동일성 비교와 동등성 비교가 있다. 동일성 비교는 인스턴스의 참조 값을 비교하는 것으로 ==을 사용한다..

값 타입 공유 참조 임베디드 타입은 여러 엔티티에서 공유하면 부작용이 발생할 수 있다. 두 Member 객체가 같은 Address 임베디드 타입을 공유한다고 해보자. Address address = new Address("city", "street", "10000"); Member member1 = new Member(); member.setUsername("member1"); member.setHomeAddress(address); em.persist(member); Member member2 = new Member(); member.setUsername("member2"); member.setHomeAddress(address); em.persist(member); 첫 번째 멤버의 주소를 newCit..

임베디드 타입 임베디드 타입은 새로운 값 타입을 직접 정의할 수 있는 값 타입이다. (JPA의 데이터 타입 분류) 주로 기본 값을 모아 만들어서 복합 값 타입이라고도 부른다. 사용법 예를 들어 회원 엔티티는 이름, 근무 시작일, 근무 종료일, 주소 도시, 주소 번지, 주소 우편번호를 가진다고 해보자. 임베디드 타입을 사용하면, 유사한 값들끼리 묶어 추상화 할 수 있다. @Embeddable은 값 타입을 정의하는 곳에 표시한다. 임베디드 타입은 기본 생성자가 필수이다. @Embeddable public class Period{ private LocalDateTime startDate; private LocalDateTime endDate; public Period(){} } @Embeddable publi..

JPA의 데이터 타입 분류 JPA의 데이터 타입은 엔티티 타입과 값 타입으로 분류할 수 있다. 엔티티 타입 @Entity로 정의하는 객체 내부 데이터가 변해도 식별자로 지속해서 추적 가능하다 ex: 회원 엔티티의 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용되는 자바 기본 타입이나 객체 식별자가 없고 값만 존재하므로 변경 시 추적할 수 없다 ex: int값을 100에서 200으로 변경하면 완전히 다른 값으로 대체된다. 값 타입 분류 값 타입은 다시 세 가지 타입으로 분류된다. 기본 값 타입 자바 기본 타입 (int, double) 래퍼 클래스 (Integer, Long) String 임베디드 타입 (복합 값 타입) 컬렉션 값 타입 기본값 타입..