728x90 전체 글389 JPA) 상속관계 매핑 (여러 전략들과 @MappedSuperclass) 관계형 DB는 상속 관계가 없으나 슈퍼타입 - 서브타입 관계는 상속 관계와 비슷하긴 해서 슈퍼타입 - 서브타입 관계를 자바에서 상속 관계로 구현한 것이 상속관계 매핑이다 구현 방법 세 가지 조인 전략 : 슈퍼, 서브타입을 각각 테이블로 만들어서 조인으로 불러오기 단일 테이블 전략 : 통합 테이블로(하나로 통합) 만들기 구현 클래스마다 테이블 전략 : 서브타입 테이블만 만들기 어노테이션 @Inheritance(strategy = Inheritance.Type.~~~) Type 뒤에 무슨 전략을 쓸 건지 적어주면 됨 JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 @DiscriminatorColumn(name=“DTYPE”).. 2022. 11. 25. JPA) 연관관계 매핑 ( 다대일, 일대다, 다대일, 다대다 ) 다양한 연관관계 매핑! 연관관계 매핑시 고려사항 3가지 - 다중성 (1:n , n:1 ....) - 단방향, 양방향 - 연관관계의 주인 1) 다중성 다대일 @ManyToOne 제일 많이 씀 일대다 @OneToMany 자주 씀 일대일 @OneToOne 가끔 씀 XX다대다 @ManyToMany 실무에서 쓰면 안 됩니다 다중성 애매할 때? 어떻게 알 수 있지? - 반대로 생각해보자 회원과 팀의 관계 / 팀과 회원의 관계 n : 1 / 1 : n 2) 단방향, 양방향 테이블은? 외래 키 하나로 두 테이블이 연관관계 사실 방향이라는 개념 XX다대다 객체는? 참조용 필드가 있는 쪽으로만 참조 가능함 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 -> 객체 입장에서는 방향이 하나입니당! 서로 왔다갔다 하는 것뿐.. 2022. 11. 24. JPA) 연관관계 매핑 연관관계 매핑 객체의 참조와 테이블의 외래 키를 매핑하자 ! 방향 : 단방향, 양방향 다중성 : n:1, 1:n, 1:1, n:m (다대일, 일대다, 일대일, 다대다) * 연관관계의 주인 : 객체 양방향 연관관계는 관리주인이 필요 * 단방향 연관관계(객체지향모델링) // FK를 가지고 있는 객체에게 얘랑 조인할거야 알려주는 애너테이션 @ManyToOne // Member가 1, team이 n @JoinColumn(name = "TEAM_ID") // 얘랑 JOIN 할거얌 private Team team; =============================== // 팀 저장 Team team = new Team(); team.setName("TeamA"); em.persist(team); // 회원 저장.. 2022. 11. 24. JPA) 엔티티매핑(객체와 테이블, 필드와 컬럼, 기본 키) 엔티티 매핑! 객체와 테이블 매핑 @Entity , @Table 필드와 컬럼 @Column 기본 키 @Id 연관관계 매핑 @ManyToOne, @JoinColumn 객체와 테이블 매핑? @Entity가 붙은 클래스는 JPA가 관리한다, 엔티티라고 부른다 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 - 기본 생성자 필수 - final, enum, interface, inner 클래스 사용 불가 - 저장할 필드에 final 사용 불가(수정이 안대자낭) @Entity는 기본값이 클래스 이름 그대로, @Entity(name="")도 가능하긴 함 Entity name은 JPA에서 얘를 관리할 때 쓸 이름 @Table 엔티티와 매핑할 테이블명을 지정한다 데이터베이스 스키마 자동 생성 애플리케이션 .. 2022. 11. 24. JPA) CRUD, 영속성 컨텍스트, 플러시, 준영속상태 JPA와 CRUD 저장 jpa.persist(member) 조회 Member member = jpa.find(memberId) 수정 member.setName("변경이름") 삭제 jpa.remove(member) EntityManagerFactory는? 하나만 생성하고, 애플리케이션 전체에서 공유한다 EntityManager는? 쓰레드간의 공유는 X, 사용하고 버려야 한다 *** JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다 *** package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; i.. 2022. 11. 24. Spring, Boot) maven 버전 선택 꿀팁 maven을 사용할 때 어떤 버전으로 사용해야 충돌이 안 날까? 고민한 적이 많다 https://spring.io/projects/spring-boot#learn Spring Boot Commercial support Business support from Spring experts during the OSS timeline, plus extended support after OSS End-Of-Life. Publicly available releases for critical bugfixes and security issues when requested by customers. spring.io 요기 들어가서 (Spring 도 있음) Reference Doc. 을 클릭하고 저기서 a single HTM.. 2022. 11. 24. 이전 1 ··· 44 45 46 47 48 49 50 ··· 65 다음 728x90