본문 바로가기
728x90

Back-End57

4.엔티티 매핑 4.엔티티 매핑 목차 1.객체와 테이블 매핑 2.데이터베이스 스키마 자동생성 3.필드와 컬럼 매핑 4.기본키 매핑 1.객체와 테이블 매핑 객체와 테이블 매핑 : @Entity , @Table 필드와 컬럼 매핑 : @Column @ 기본키 매핑 : @Id @ 연관관계 매핑 : @ManyToOne ,@JoinColumn @Entity JPA 가 관리하는 엔티티 기본생성자는 필수 (public , protected) final 클래스 , enum,interface,inner 클래스 사용 x 저장할 필드에 final 사용 x 2.데이터베이스 스키마 자동생성 DDL 을 애플리케이션 실행시점에 자동 생성 테이블 - > 객체 중심 데이터 베이스 방언에따라 적절한 DDL 을 생성 운영서버에서는 생성된 DDL 을 쓰지 .. 2021. 1. 7.
6.컴포넌트 스캔 6.컴포넌트 스캔 목차 1.컴포넌트 스캔과 의존관계 자동주입 시작 2.탐색위치와 기본 스캔대상 3.필터 4.중복 등록과 충돌 1.컴포넌트 스캔과 의존관계 자동주입 시작 스프링 빈등록할때는 자바코드의 @Bean , xml 의 설정을 했다 하지만 이렇게 등록해야되는 빈이 많다면 ? 귀찮고 누락되는 일도 많아진다 스프링 설정정보가 없어도 자동으로 등록해주는 컴포넌트 스캔등장 Autowired 라는 의존관계도 자동으로 주입하는 기능도 필요하다 AutoAppConfig.java @Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) public class Au.. 2021. 1. 7.
3.영속성관리 - 내부동작방식 3.영속성관뢰 - 내부동작방식 목차 1.영속성 컨텍스트1 2.영속성 컨테스트2 3.플러시 4.준영속상태 5.정리 1.영속성 컨텍스트1 객체와 관계형 데이터베이스 매핑 영속성 컨텍스트 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity) persist 는 DB 에 저장이 아닌 영속성 컨텍스트에 저장한다 논리적인 개념 , 눈에 보이지 않는다 , 엔티티 매니저를 통해서 접근 영속성 컨텍스트 비영속 : 새로운 상태 영속 : 관리하는 상태 준영속 : 분리된 상태 삭제 : 삭제된 상태 비영속성 상태 객체를 생성한 상태 Member member = new Member(); member.setId("memberId"); member.setUsername("회원"); 영속성 .. 2021. 1. 5.
5.싱글톤 컨테이너 5.싱글톤 컨테이너 목차 1.웹 애플리케이션 싱글톤 2.싱글톤 패턴 3.싱글톤 컨테이너 4.싱글톤 방식의 주의점 5.@Configuration 과 싱글톤 6.@Configuration 과 바이트코드 조작의 마법 1.웹 애플리케이션 싱클톤 웹 애플리케이션은 보통 고객이 동시에 요청한다 SingletonTest public class SingletonTest { @Test @DisplayName("스프링이 없는 순수한 DI 컨테이너") void pureContainer(){ AppConfig appConfig = new AppConfig(); //1.조회 MemberService memberService1 = appConfig.memberService(); //2.조회 MemberService memberS.. 2021. 1. 5.
2.JPA 시작하기 2.JPA 시작하기 목차 1.JPA 프로잭트 설정 2.JPA 애플리케이션 개발 1.JPA 프로잭트 설정 xml 설정 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 jpa 와 h2를 설정한다 persistence H2Dialect - h2의 방언 H2Dialect 을 변경하면 오라클 , mysql , mariadb 등등을 사용할수 있다 resources -> META-INF -> persistence.xml 2.JPA 애플리케이션 개발 Member @Entity @Table("Member") public class Member { @Id @Column("id") private Long id; private Strin.. 2021. 1. 4.
1.JPA 소개 1.JPA 소개 목차 1.SQL 중심적인 개발의 문제점 2.JPA 소개 1.SQL 중심적인 개발의 문제점 무한반복 과 지루한 코드 객체 그래프 탐색이 안된다 계층 분할이 쉽지가 않다 데이터 접근 계층을 사용해서 SQL 을 숨겨도 어쩔수 없이 DAO 를 열어서 SQL 이 실행되는지 확인해야한다 엔티티를 신뢰할수 없다 2.JPA 소개 ORM 객체 관계 매핑 객체는 객체대로 설계 , 관계형 DB는 관계형 DB 대로 설계 ORM 프레임워크가 중간에서 매핑 EJB -> 하이버네이트 -> JPA JPA 를 사용해야 되는 이유 SQL 개발 -> 객체중심 개발 생산성 저장 : persist(member) 조회 : find(memberId) 수정 : set("") - 원하는 값을 넣으면 알아서 Update 해준다 삭제 .. 2021. 1. 4.
728x90