본문 바로가기

전체 글62

[JPA] 일대일 연관관계 (단방향) 목차 테이블 설계 일대일 연관관계를 고객(Member)과 고객이 주문한 음식(Food)을 예시로 설명하겠습니다. 고객(Member)은 하나의 음식(Food)을 주문할 수 있다. 고객(Member) : 음식(Food) = 1 : 1 단방향 연관관계를 위한 추가 조건은 다음과 같습니다. 외래 키의 주인은 Food Entity 이다. 일대일 관계에서의 외래 키 Entity에서 외래 키의 주인은 일반적으로 다(N)의 관계인 Entity이지만, 일대일 관계에서는 아무나 외래 키의 주인이 될 수 있으므로 직접 지정해줘야 합니다. Food Entity는 Food.member 필드를 통해 음식을 주문한 고객(Member Entity)에 접근할 수 있다. Member Entity는 Food Entity에 접근할 수 없다.. 2023. 4. 28.
[JPA] Entity 연관 관계 목차 연관 관계 연관관계란 두 도메인(객체, 테이블) 이 서로 논리적인 의미를 갖고 양쪽을 참조하는 관계를 의미합니다. DB에서 테이블들이 연관 관계를 맺는 방법과 객체 지향 프로그램인 자바에서 객체(Entity)들이 연관 관계를 맺는 방법에 차이가 있습니다. 이 차이를 해소하여 테이블을 객체로 다룰 수 있도록 해주는 기술이 ORM이며, 자바 진영의 ORM 기술 표준 명세가 JPA입니다. - 주문 APP DB 테이블 설계 DB 테이블의 연관관계와 Entity 간의 연관관계의 차이점을 설명하기 위해 주문 애플리케이션의 DB 테이블 설계를 가정하였습니다. 고객 (users) 테이블 주문 (orders) 테이블 음식 (food) 테이블 - DB 테이블 간의 방향 DB 테이블 간의 방향에서 방향은 크게 단방향과.. 2023. 4. 28.
[JPA] JPA 동작 이해하기 - 동작 원리와 영속성 컨텍스트 목차 JPA 동작 이해하기 - EntityManagerFactory EntityManager : 인스턴스를 관리합니다. 일반적으로 하나의 Database에 하나의 EntityManagerFactory가 매핑됩니다. 예) 게시판 프로젝트를 위해 게시판 DB를 만들면 테이블과 무관하게 하나의 EntityManagerFactory가 매핑됩니다. EntityManagerFactory에 DB 접근 정보, 옵션 등을 전달하기 위해 persistence.xml을 사용하는데, 스프링 부트를 사용하게 되면 application.properties를 활용해 해당 파일이 자동으로 생성됩니다. Persistence 객체를 통해서 EntityManagerFactory를 만들 수 있습니다. EntityManagerFactory .. 2023. 4. 27.
[Spring] #10. 스프링 빈 조회 1. 컨테이너에 등록된 모든 빈 조회 AppConfig는 @Configuration 어노테이션이 적용된 스프링 빈 설정 파일을 의미한다. (이름 짓기에 따라 다를 수 있음) class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("모든 빈 출력하기") void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { .. 2023. 4. 25.