Thymeleaf를 통해 컨트롤러와 데이터를 주고받고 처리하는 과정을 공부하면서 th:action, th:src, thymeleaf 문법을 통해 객체 그래프 탐색 방법에 대해 정리하고자 합니다. html 문서를 작성하면서 동적 프로그래밍이 필요할 때가 있습니다. 이럴 때 타임리프 문법을 통해 쉽게 해결할 수 있습니다. form form 태그를 통해 컨트롤러에게 데이터 셋을 전달하여 데이터 처리를 요청할 수 있습니다. th:action ✔️ form data를 보낼 url를 설정합니다. ✔️ 서버 Controller에게 데이터 처리 요청을 합니다. @{URL 링크} ✔️ @{URL 링크} : 타임리프는 URL 링크를 @{...} 에 담아서 전달합니다. ex1) th:href = "@{/css/style/...
영속성 전이란 : CASCADE - 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들어 주는 것을 의미합니다. 위의 예시로 Parent와 Child는 1:N 관계로 매핑되어 있습니다. Child 엔티티는 한 Parent와 연결되어 있습니다. 이때 Parent 엔티티를 저장할 때 연관된 자식 엔티티도 함께 저장하는 것을 영속성 전이라 합니다. 영속성 전이 : CASCADE 주의 영속성 전이는 연관관계를 매핑하는 것과 관련이 없습니다. 엔티티를 영속화할 때 연관된 엔티티도 함께 영속화하는 편리한 기능만 제공하는 것입니다. CASCADE 종류 ALL : 모두 적용 PERSIST : 영속 REMOVE : 삭제 MERGE : 병합 REFRESH : 리프레쉬 DETACH : DETACH 모..
상속관계 매핑 관계형 데이터베이스에는 상속 관계가 없습니다. 객체의 상속 구조와 DB의 슈퍼타입 - 서브타입 관계를 매핑 슈퍼타입-서브타입 논리 모델을 물리 모델로 구현하는 3가지 방법 조인 전략 : 각각 테이블로 변환 단일 테이블 전략 : 통합 테이블로 변환 구현 클래스마다 테이블 전략 : 서브 타입 테이블로 변환 (비추천) 주요 어노테이션 @Inheritance(strategy=InheritanceType.XXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 슈퍼 타입 엔티티 @DiscriminatorColumn(name=’DTYPE’) 부모 클래스에 선언합니다. 하위 클래스를 구분하는 용도의 컬럼입니다. 관례는 ..
다대일 페치 조인 (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..