분류 전체보기

Spring Framework/JPA

[JPA] JPA 상속 관계 매핑과 @MappedSuperClass 사용하기 - 조인전략, 싱글 테이블, @CreatedDate, @LastModifiedDate

상속관계 매핑 관계형 데이터베이스에는 상속 관계가 없습니다. 객체의 상속 구조와 DB의 슈퍼타입 - 서브타입 관계를 매핑 슈퍼타입-서브타입 논리 모델을 물리 모델로 구현하는 3가지 방법 조인 전략 : 각각 테이블로 변환 단일 테이블 전략 : 통합 테이블로 변환 구현 클래스마다 테이블 전략 : 서브 타입 테이블로 변환 (비추천) 주요 어노테이션 @Inheritance(strategy=InheritanceType.XXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 슈퍼 타입 엔티티 @DiscriminatorColumn(name=’DTYPE’) 부모 클래스에 선언합니다. 하위 클래스를 구분하는 용도의 컬럼입니다. 관례는 ..

Spring Framework/JPA

[JPA] JPA 페치조인과 DISTINCT - 컬렉션 페치 조인 데이터 중복 문제 해결

다대일 페치 조인 (Member - Team) 다대일 페치 조인을 하게 되면 데이터 중복이 발생하지 않습니다. String jpql = "select m from Member m join fetch m.team"; List members = em.createQuery(jpql, Member.class) .getResultList(); for (Member member : members) { //페치 조인으로 회원과 팀을 함께 조회해서 지연 로딩X System.out.println("username = " + member.getUsername() + ", " + "teamName = " + member.getTeam().name()); } // username = 회원1, teamname = 팀A // u..

Spring Framework/JPA

[JPA] 연관관계 매핑, 양방향, 연관관계 주인, mappedBy

목표 객체와 테이블 연관관계의 차이 이해 객체의 참조와 테이블의 외래 키 매핑 이해 단방향, 양방향 이해 다중성 : 다대일, 일대다, 다대다 이해 연관관계의 주인 연관관계가 필요한 이유 객체를 테이블에 맞추어 모델링 (연관관계가 없는 객체 / 사용 X) @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String @Column(name = "TEAM_ID") private Long teamId; } @Entity public class Team { @Id @GeneratedValue private Long id; private String name; } 참조 대신에 외래 ..

Spring Framework/JAVA

[JAVA] 자바 JUnit5 & AssertJ 테스트 코드 사용법

AssertJ 란 테스트코드를 작성 시, JUnit 보다 더욱 테스트 코드의 가독성과 편의성을 높여 주는 라이브러리이다. 메소드 체이닝을 지원하기 때문에 좀 더 깔끔하고 읽기 쉬운 테스트 코드를 작성할 수 있습니다. 형식 : assertThat(테스트 타겟).메소드1().메소드2().메소드3()’ assertThat() 으로 시작한다. JUnit 5 어노테이션 JUnit5 내용 JUnit4 @Test 테스트 Method임을 선언함. @Test @DisplayName 테스트 클래스 또는 메소드의 사용자 정의 이름을 선언할 때 사용함. @BeforeEach 모든 테스트 실행 전에 실행할 테스트에 사용함. @Before @AfterEach 모든 테스트 실행 후에 실행한 테스트에 사용함. @After @Befo..

kylo
'분류 전체보기' 카테고리의 글 목록 (13 Page)