본문 바로가기

Spring42

Spring Security 기본 구조 로그인(인증) 처리를 하기 위해서는 클라이언트가 Request를 보냈을 때 Request를 처리하는 Controller에 도달하기 전에 클라이언트의 Authentication(인증)이 실행되어야 하므로 Spring Security는 Servlet의 Filter를 이용하여 구현된다 (자세한 개념은 Filter에 대한 개념을 찾아볼 것) 일반적으로 Filter는 아래와 같이 구성된다 필터 구현 예) public class LoginFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletExc.. 2023. 7. 8.
복수의 유일키 제약조건 지정하는 방법 문법 @Table( name="테이블 이름", uniqueConstraints={ @UniqueConstraint( name = "unique 제약조건 이름", columnNames = { "포함할 컬럼이름 1", "포함할 컬럼이름 2" } ), } public class Entity{ } 예제 @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Builder @Table(name="fcm_device_token", uniqueConstraints= { @UniqueConstraint( name = "fcm_device_token_device_token_uindex", columnNames = { "user_id", "devic.. 2023. 5. 26.
@MappedSuperclass JPA에서 여러 엔티티를 작성하다가 상속관계와는 별개로 중복되는 속성들을 공통 클래스로 빼내고 싶을 때가 있다 이를 위해, JPA에서는 @MappedSuperClass 어노테이션을 제공한다 사용방법 1. 공통 클래스 작성 (공통 클래스에는 @Entity 어노테이션을 붙이지 않는다) 주의점 BaseEntity는 DB에 테이블이 생성되지 않음 BaseEntity로 DB에 조회 불가능 2. 공통 클래스에 @MappedSuperclass 어노테이션을 붙여준다 2. 공통 클래스를 상속한 엔티티 작성 2023. 3. 24.
상속관계 매핑 자바 클래스에서는 부모클래스를 상속하여 자식클래스를 생성할 수 있다 하지만, DB에서는 상속관계 개념이 없다 대신, 논리적 모델의 슈퍼 타입과 서브타입이라는 개념이 존재한다 슈퍼 타입: 공통적인 컬럼을 가진 타입 서브 타입: 슈퍼타입에 컬럼을 추가하여 생성한 타입 예를 들어, PERSON(사람)이라는 테이블과 STUDENT(학생)와 SALARYMAN(직장인)이라는 테이블의 관계는 아래 사진과 같이 표현 가능하다 위 사진에서 PERSON이 슈퍼타입, STUDENT와 SALARYMAN을 서브타입으로 볼 수 있다 JPA에서는 슈퍼 타입과 서브타입을 매핑할 수 있는 여러 전략들을 제공한다 JPA에서 제공하는 전략은 아래와 같다 조인전략 조인전략 사용 시 테이블 구조는 아래와 같다 특징 부모-자식 테이블이 분리된.. 2023. 3. 24.