티스토리 뷰
728x90
1. 두 개 이상의 키를 조합하여 같이 하난의 고유한 키로 사용하는 방식이다.
2. 스프링 Security의 기본 schema는 아래 다이어그램과 같다.
3. users의 기본키는 username이고 authority는 기본키가 없다.
3-1 ORM을 설정할 때는 키지정은 반드시 필요하므로 authorities 테이블도 지정해야 한다.
3-2 username은 users테이블의 username을 참조하는 외례키로 중복이 허용된다.
3-3 결국 username과 authority를 같이 묶어 primary로 선언해야 한다.
4. 하이버네이트에서 복합키를 설정하는 방법은 여러가지가 있는데, 가장 간단한 방법이 아래와 같다.
4-1 복합키로 묶이는 속성모두에 @Id를 넣어주는 것이다. 이러면 굳이 클래스를 따로 만들 필요가 없다.
4-2 그리고 Serializable을 구현해야 한다.
4-2-1 하나의 Id를 가진 Entity는 기본적으로 Serializable을 상속하지만 둘 이상은 따로 명시해야 한다.
package pe.pilseong.customermanagement.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
@Entity
@Table(name = "authorities")
@Data
public class Authority implements Serializable {
/**
*
*/
private static final long serialVersionUID = -129819940058142473L;
@Id
private String username;
@Id
private String authority;
}
728x90
'Spring > Hibernate' 카테고리의 다른 글
Hibernate Advanced : @ElementCollection Set사용하기 (0) | 2020.06.04 |
---|---|
Hibernate Advanced - 예제 환경 설정하기 (0) | 2020.06.04 |
Hibernate : Many-To-Many Mapping - Part 2 (0) | 2020.05.08 |
Hibernate : Many-To-Many Mapping - Part 1 (0) | 2020.05.07 |
Hibernate : One-To-Many Mapping Uni-Direction (0) | 2020.05.07 |
댓글
최근에 올라온 글
최근에 달린 댓글
- 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
TAG
- 설정
- Spring Security
- Validation
- hibernate
- 스프링부트
- one-to-one
- 하이버네이트
- 상속
- jsp
- 외부파일
- Spring
- Rest
- 설정하기
- login
- 매핑
- 로그인
- XML
- Many-To-Many
- mapping
- spring boot
- 자바
- crud
- WebMvc
- form
- Angular
- 스프링
- MYSQL
- one-to-many
- RestTemplate
- Security
250x250