사전설정 데이터베이스 정의하기
새로운 스키마와 테이블을 만든다.
메뉴에서 [Database] - [Reverse Engineer] 으로 다이어그램을 만든다.
KEY 'FK_DETAIL_idx' (instructor_detail_id')
이것은 특정 칼럼에 대해서 인덱스를 만든다.
책에 인덱스가 있는 것처럼 인덱스를 만들어서 키값에 의한 검색으로 성능향상을 노린다.
그리고 constraints를 강화하는 것을 돕는다. constraints는 primary key 가 unique 이 되게 한다.
constraint
는 foreign key와 primary table 사이에서 테이블간 링크의 타이틀과 같은 의미이다.
테이블을 삭제하는 것 대신에 수정하고 싶을 때 constraint 값만 바꿔서 할 수 있다.
클래스 만들기
하던대로 기존 프로젝트를 복붙하고 이름을 바꾸어준다.
getter/setter에서는 모든 필드를 선택해주고
toString( )은 id와 title만 선택한다.
클래스 구성은 완료됐고 이제 관계를 설정하자.
Course 클래스 완성
이제는 Instructor 클래스로 가자
기존 클래스 수정
Instructor 클래스에서 courses 필드의 mappedBy 값은
Course 클래스 Instructor 필드값을 넣는다.
바로 위 사진에서 보면 알 수 있다.
Intructor 필드 이름이 instructor이다.
cascade 값을 넣어주는데 delete 값은 넣지 말자.
그리고 getter/setter도 넣어주자
Instructor 클래스에 있는 Course 리스트에 Course 데이터를 추가하는 함수
동시에 Course에는 Instructor 정보를 입력한다.
메인함수 만들기
기존 클래스를 복봍하여 만들자
클래스 만들기 - Course
Retrieve Instructor Course
이전 것을 재활용하여 만들어주면 된다.
Delete a Coruse
'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글
Spring> Hibernate> @OneToMany Undirectional (0) | 2021.04.30 |
---|---|
Spring> Hibernate> Eager vs Lazy Loading (0) | 2021.04.29 |
Spring> Hibernate> @OneToOne Mapping (0) | 2021.04.27 |
Spring> Hibernate> CRUD (0) | 2021.04.27 |
Spring> Hibernate> Configuration with Annotation (0) | 2021.04.23 |