본문 바로가기
728x90

Spring8

엔티티 매핑 JPA가 지원하는 매핑 어노테이션은 다음과 같이 4가지로 분류할 수 있다. 1. 객체와 테이블 매핑: @Entity, @Table 2. 기본 키 매핑: @Id 3. 필드와 컬럼 매핑: @Column 4. 연관관계 매핑: @ManyToOne, @JoinColumn @Entity JPA를 사용해 테이블과 클래스를 매핑할 때 사용한다. @Entity 속성은 다음과 같다. 속성 기능 기본값 name JPA에서 사용할 엔티티 이름을 지정한다. 보통은 디폴드값인 클래스 이름을 사용한다. 다른 패키지에 이름이 같은 엔티티 클래스가 있으면 이 속성으로 이름을 지정해 충돌을 피할 수 있다. 클래스 이름 @Entity를 적용하기 위해선 다음과 같은 점을 따라야 한다. 1. 기본 생성자가 존재해야 한다. 접근자는 publi.. 2022. 7. 26.
연관관계 매핑 기초 테이블들은 FK를 통해 관계를 맺고 객체는 참조를 통해 관계를 맺는다. 이 둘은 완전히 다른 특징을 가진다. 그때문에 ORM에서 가장 어려운 부분이 객체 연관 관계와 테이블 연관관계를 매핑하는 일이다. 용어 정리 객체 참조와 테이블 FK를 매핑하기 전에 용어 정리부터하자. 방향(direction): 양방향, 단방향이 존재한다. 단방향: 하나의 관계에서 한 쪽만 참조한다. x -> y 이거나 y -> x 이다. 양방향: 하나의 관계에서 양쪽이 모두 참조하고 있다. x -> y 임과 동시에 y -> x이다. 방향은 객체관계에만 존재하고 테이블 관계는 항상 양방향이다. 다중성(Multiplicity): N:1, 1:N, 1:1, N;M 연관관계의 주인(owner): 객체를 양방향 연관관계로 만들면 연관관계의 .. 2022. 7. 18.
Chapter 6. 빈 라이프사이클 범위 컨테이너 초기화와 종료 스프링 컨테이너는 초기화, 종료 라는 라이프 사이클을 갖는다. 1 2 3 4 5 6 7 8 // 스프링 컨테이너 초기화 // 스프링 컨테이너는 설정 클래스에서 정보를 읽어와 알맞은 빈 객체를 생성하고 // 의존 주입 하는 작업을 수행한다. AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppCtx.class); // 초기화된 컨테이너를 사용한다 - 메서드를 이용해 컨터이너에 보관된 빈 객체를 구한다. Greeting greeting = context.getBean("greeting", Greeting.class); // 컨테이너를 종료한다. context.close(); Colo.. 2022. 5. 5.
Chapter 5. 컴포넌트 스캔 컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록하는 기능이다. 이 기능을 사용하면 설정 클래스를 사용하지 않아도 되므로 설정 코드가 줄어든다. @Componenet 어노테이션을 클래스에 사용해 해당 클래스를 스캔 대상으로 설정할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // @Component 어노테이션만 사용하면 // 클래스 이름에서 첫 글자를 소문자로 바꾼 이름이 // 빈 이름으로 사용된다. @Component public class Bean { public void printHello() { System.out.println("hello"); } } // 속성 값을 주면 해당 속성 값이 빈 이름으로 사용된다. @Component("bean1".. 2022. 5. 2.
728x90