본문 바로가기

전체 글60

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.
QueryDSL Group By 삽질기① - Projections.constructor() 배경 앱구현 완료 후, 이용자들의 사용통계분석을 위해 작업이력데이터를 뽑아내 통계 데이터를 추출하는 기능을 구현해야 했다 기존에는 JPQL로 코드를 작성했지만, JPQL로 작성할 경우, 코드가 복잡해질 것 같아서 QueryDSL로 작성하고자 했다 작성한 코드는 아래와 같다 @Override public List getStaticsList(WorkHistoryType.WorkType workType, WorkHistoryType.FunctionType functionType) { DateTemplate formattedDate = Expressions.dateTemplate(String.class, "DATE_FORMAT({0}, {1})", workHistory.workDate, "%Y-%m-%d"); .. 2023. 4. 9.
@MappedSuperclass JPA에서 여러 엔티티를 작성하다가 상속관계와는 별개로 중복되는 속성들을 공통 클래스로 빼내고 싶을 때가 있다 이를 위해, JPA에서는 @MappedSuperClass 어노테이션을 제공한다 사용방법 1. 공통 클래스 작성 (공통 클래스에는 @Entity 어노테이션을 붙이지 않는다) 주의점 BaseEntity는 DB에 테이블이 생성되지 않음 BaseEntity로 DB에 조회 불가능 2. 공통 클래스에 @MappedSuperclass 어노테이션을 붙여준다 2. 공통 클래스를 상속한 엔티티 작성 2023. 3. 24.