![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/d3VFkA/btqEdw15QkP/ZRPw5KcVKoaqo1UzDokeVK/img.png)
1. 이 포스트는 Spring : Web MVC + Security + JDBC 시리즈에 연장이다. xml파일 설정은 사용하지 않는다. 1-1 하려는 것은 우선 in-memory로 인증을 구현한다. 1-2 Database를 생성하고 hibernate로 유저 등록을 구현한다. -> 이 포스트에서 할 내용 1-3 가입정보에 대한 Validation처리를 작성한다. Customer Validatior로 구현한다. 1-4 In-memory가 아닌 DaoAuthenticationProvider로 hibernate를 사용한 Spring security 인증처리로 변경 1-5 위에 것을 한번에 다 할려면 난이도가 헬이라서 이렇게 분리해서 한다. 2. 데이터베이스를 생성한다. 2-1 Spring Security가 지정..
1. 쉬운 부분만 남았다. Part1의 코드를 사용하여 실행하는 부분이다. 2. 과정과 학생 정보를 생성하고 그 후에 저장하는 예제이다. 2-1 중요한 부분은 둘 다 managed state가 된 후에 연결을 정의해야 한다. 2-2 즉 session.save()를 호출하여 각 Entity가 하이버네이트에 의해 관리된 상태가 되어야 한다는 말이다. 2-3 예를 들면 새로운 과정을 생성하거나 get으로 가져온 후 2-3-1 학생을 session.save로 저장하지 않고 setStudent로 추가 후 session.save로 과정을 저장하는 경우 2-3-2 Student가 transient 상태라고 오류가 발생한다. 2-3-3 학생정보를 저장한 후 연결해야 한다. public class CreateEntity..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/zx34L/btqDWT4ixDl/GR0KkBasqaDHEIXGcxtQkK/img.png)
0. 학생 테이블을 도입하여 과정과 학생의 Many to Many 관계를 설명한다. 0-1 상식적으로 과정이 삭제되었다고 학생 데이터가 삭제되면 안된다. 0-2 학생 정보가 삭제되었다고 과정 정보가 삭제되면 안된다. 0-3 즉 cascade에 delete가 포함되면 안된다. 0-4 이 예제는 Many to Many 관계이므로 기본 FetchType이 Lazy이다 별도 설정이 필요없다. 1. Many To Many Mapping에는 Join Table이라는 별도의 테이블을 작성해서 표현한다. 2 JoinTable 이란 두 테이블 사이에 매핑정보를 제공하기 위한 테이블이다. 2-1 이 테이블은 두 테이블을 연결하기 위해 두 테이블의 primary key를 매핑하고 있다. 2-2 이 예제에서는 course_s..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/WK7zQ/btqDWr06dms/2K37AYa9sRX52ZCGcGpVa0/img.png)
1. 코스 테이블과 리뷰 테이블 두개의 관계를 가지고 설명한다. 2. 코스와 리뷰는 One To Many의 관계를 가진다. 3. 코스가 삭제되면 리뷰 역시 삭제되어야 한다. 4. 아래는 데이터베이스 구조 도식이다. 4-1 review 테이블이 추가되었고 4-2 review 테이블의 course_id가 foreign key로 설정되어 있다. 2. One to Many uni-directional은 전의 one-to-one과 one-to-many와는 좀 다르다. 2-1 uni-directional의 방향이 foreign key가 있는 테이블에서 시작하는 경우는 설정이 동일하다. 2-1-1 해당 Entity에 관계하는 Entity의 속성을 추가하고 @Many-To-One과 @JoinColumn을 붙이면 된다...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Pneic/btqDSzrEQlF/hBOChkUyXNfKZSs81i7nmk/img.png)
0. 데이터베이스에서 foreign를 가진 쪽은 무조건 하나의 참조 row를 가질 수 밖에 없다. 0-1 그렇기 때문에 관계를 맺는 상대방은 무조건 one side가 된다. 0-2 자신은 상황에 따라 one 혹은 many가 돈다. 1. 아래 설명은 하나의 강사가 여러 과목의 강의를 하고 한 강의는 한명의 강사가 가르친다고 가정한다. 1-1 DB에서는 아래 도면과 같이 OneToOne, OneToMany명기가 명확하지 않다. 1-2 설계자가 어떻게 사용하는가에 방향성과 관계가 결정된다. 2. course table을 추가 한다. 3. Course 클래스를 추가하고 Entity 매핑을 처리한다. 3-1 course 테이블이 강사에 대한 foreign key를 가지고 있으므로 3-1-1 강사는 무조건 one이..
0. 양방향의 설정에서 가장 중요한 것 중 하나가 참조이다. 0-1 삭제할 때는 관계를 맺는 enitity와의 참조도 중요한 역활을 하므로 꼼꼼하게 확인해야 한다. 1. One To One 관계의 테이블 사이에 Bi-directional은 실제 관계형데이터 베이스에서는 사용되지 않는다. 1-0 즉 프로그램 상 편의로 양방향 모두 Entity를 소유하도록 하는 것이다. 1-1 지난 예제처럼 강사 테이블과 강사세부정보 테이블이 1:1의 관계를 가지고 있다고 하자. 1-1-1 강사 테이블에 instructor_detail_id라는 외래키 column이 존재한다. 1-1-2 이 컬럼 값은 Instructor_detail 테이블의 기본키 값을 참조하고 있다. 1-1-3 즉 강사테이블에서만 강사세부정보에 대한 정보..
1. 개발 절차 1-1 테이블을 생성한다. 1-2 hibernate와 mysql 세팅을 한다. 1-2 Entity 클래스를 만든다. 1-3 Entity 클래스에 Annotation을 작성하여 Mapping 처리한다. 1-4 프로그램에서 이 두 Entity를 사용한다. 2. 아래와 같이 간단히 두 개의 테이블을 생성한다. 2-1 두 개의 테이블 사이에는 foreign key관계가 설정되어 있다. 2-1-1 외래키의 목적은 2-1-1-1 두 테이블의 관계가 정해진 규칙에 의해 보호된다. 참조무결성이라고도 한다. 2-1-1-1-1 더 세부적으로 말하면 두 테이블의 관계가 깨어지는 query가 실행되지 못하도록 한다. 2-1-1-2 적절한 값이 외래키 column에 입력되는 것을 보장해 준다. 2-1-1-2-1..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/vucgq/btqDVdNOn5c/6AbAyMq6UX46ykLr3vyeu0/img.png)
0. Hibernate를 잘 사용하려면 데이터베이스에 대한 기본이 잘 잡혀 있어야 한다. 0-1 데이터베이스 기초가 없으면 솔직히 Hibernate 학습은 시간낭비라 생각한다. 1. 데이테베이스 설계처럼 Hibernate에도 3가지 Mapping 방식이 있다. 1-1 One-To-One 1-2 One-To-Many / Many-To-One 둘 다 같다. 관계를 뒤집으면 동일하다. 1-3 Many-To-Many 1-3-1 데이터베이스 설계처럼 별도의 관계 테이블을 추가하여 3개의 Table을 사용한다. 1-3-2 두 개의 테이블과 한개의 관계테이블이 2개의 One-To-Many 관계를 이룬다. 2. Cascade 2-1 Cascade는 데이터베이스에서 실행된 query문을 관련된 테이블까지 적용하는 것을 ..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- crud
- 상속
- RestTemplate
- Angular
- 로그인
- 외부파일
- spring boot
- WebMvc
- 하이버네이트
- MYSQL
- 자바
- XML
- Spring
- form
- jsp
- 매핑
- Security
- login
- 스프링부트
- 설정하기
- Rest
- 스프링
- one-to-many
- Spring Security
- hibernate
- 설정
- Validation
- one-to-one
- Many-To-Many
- mapping