티스토리 뷰
출처 : blog.naver.com/ljpark6/221726697771
Spring data common 프로젝트에는 CreateBy, CreatedDate, LastModifiedBy, LastModifiedDate 애노테이션이 존재한다. 네이밍그대로 누가 언제 생성하였고, 누가 언제 변경하였는지를 의미한다
@MappedSuperclass @EntityListeners(AuditingEntityListener.class) //@Getter @Setter public abstract class CommonTbl { //@Temporal(TemporalType.TIMESTAMP) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") @CreatedDate @Column(name="regist_dt") @Schema(description ="등록 일시" ) protected LocalDateTime registDt; @Column(name="regist_id") @CreatedBy @Schema(description ="등록 아이디" ) protected String registId; //@Temporal(TemporalType.TIMESTAMP) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") @LastModifiedDate @Column(name="modify_dt") @Schema(description ="수정 일시" ) protected LocalDateTime modifyDt; @Column(name="modify_id") @LastModifiedBy @Schema(description ="수정 아이디" ) protected String modifyId;
@Entity @Table(name="t_wd_term") @NamedQuery(name="TWdTerm.findAll", query="SELECT t FROM TWdTerm t") public class TWdTerm extends CommonTbl implements Serializable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name="T_WD_TERM_TERMSN_GENERATOR", sequenceName="T_WD_TERM_TERM_SN_SEQ", allocationSize = 1) @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="T_WD_TERM_TERMSN_GENERATOR") @Column(name="term_sn") @Schema(description ="용어 일련번호" ) private Integer termSn; @Column(name="data_fom") @Schema(description ="데이터 형식" ) private String dataFom;
등록시에는 수정일자 수정되지 않도록 하려면 modifyOnCreate = false
@Configuration @EnableJpaAuditing( modifyOnCreate = false ) public class WebConfig implements WebMvcConfigurer { /* * 로그인 인증 Interceptor 설정 */ @Autowired LoginCheckInterceptor loginCheckInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(loginCheckInterceptor) .addPathPatterns("/api/**") .addPathPatterns("/*/page") .excludePathPatterns("/api/login/**") //로그인 쪽은 제외 .excludePathPatterns("/login/**") //로그인 쪽은 제외 ; } /* * 로그인 사용자로 registId, modifyId 설정 */ @Bean public AuditorAware<String> auditorProvider() { return new AuditorAwareImpl(); } }
public class AuditorAwareImpl implements AuditorAware<String>{ @Override public Optional<String> getCurrentAuditor() { HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); String loginId = SessionUtil.getLoginId(request); return Optional.ofNullable(loginId); } }
'Skill > JPA' 카테고리의 다른 글
@JsonProperty 를 이용한 접근 제어 - 응답값에 포함하지 않기 (0) | 2021.02.22 |
---|---|
[queryDsl] 설정 (0) | 2021.02.21 |
[jpa] 조회된 목록이 없는 경우 빈 Page 만들기 (0) | 2021.02.17 |
[JPA] 기본완성 findBy.. 함수들과 return값 (0) | 2021.02.14 |
[JPA] DB Table 자동 수정 (0) | 2021.02.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- PostgreSQL
- 전후방탐색
- getter
- Keycode
- object key
- border-collapse
- caniuse
- 정규식
- sumifs
- JQuery
- 진열사랑
- springboot
- element위치
- excel
- $.extend
- @ExceptionHandler
- Javascript
- lombok
- spring
- QueryDSL
- CSS
- setter
- draw.io
- DatePicker
- oracle
- 여러 컬럼 update
- devtools
- 프로젝트명변경
- ul li로 테이블
- $.each
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함