Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

[예제] 값 타입 매핑 본문

인프런/[인프런] 자바ORM 표준 JPA 프로그래밍

[예제] 값 타입 매핑

Seung__ 2021. 8. 14. 13:25

 

1. Address 임베디드 타입


  • Equals and HashCode 생성 시 Getter를 사용하도록 옵션 설정
  • getter를 사용하지 않고 필드에 직접 접근하면 프록시의 경우 계산이 안됨 ㅜ
  • 그러니 getter사용하도록 .

  • 값 타입을 사용하면 의미있는 메서드도 생성이 가능하다.
  • validation도 공통으로 쓸 수 있고.. 여러 이점이 있음.
  • @Embeddable
    public class Address {
    
        
        private String name;
        @Column(length = 10)
        private String city;
        
        @Column(length = 20)
        private String street;
        
        @Column(length = 5)
        private String zipcode;
        
        private String fullAddress(){
            return getCity() +" "+ getStreet() +" "+ getZipcode();
        }
    
        public String getName() {
            return name;
        }
    
       private void setName(String name) {
            this.name = name;
        }
    
        public String getCity() {
            return city;
        }
    
        private void setCity(String city) {
            this.city = city;
        }
    
        public String getStreet() {
            return street;
        }
    
        private void setStreet(String street) {
            this.street = street;
        }
    
        public String getZipcode() {
            return zipcode;
        }
    
        private void setZipcode(String zipcode) {
            this.zipcode = zipcode;
        }
    
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Address address = (Address) o;
            return Objects.equals(getName(), address.getName()) && Objects.equals(getCity(), address.getCity()) && Objects.equals(getStreet(), address.getStreet()) && Objects.equals(getZipcode(), address.getZipcode());
        }
    
        @Override
        public int hashCode() {
            return Objects.hash(getName(), getCity(), getStreet(), getZipcode());
        }
    }

2. GitHub : 210814 Embedded type


 

GitHub - bsh6463/jpashop

Contribute to bsh6463/jpashop development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] 자바ORM 표준 JPA 프로그래밍' 카테고리의 다른 글

JPQL 기본 문법과 기능  (0) 2021.08.15
객체지향 쿼리 언어  (0) 2021.08.14
값 타입  (0) 2021.08.13
값 타입 비교  (0) 2021.08.13
값 타입과 불변 객체  (0) 2021.08.13
Comments