Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SystemCall
- Thread Multiplexing
- 함수형 인터페이스
- strict stubbing
- sql-mappler
- java.util.function
- hiberbate
- Process
- rainbow table
- FunctionalInterface
- 문자열 불변성
- 쓰레드 라이브러리
- custom annotation
- Thread Library
- task_struct
- functional interface
- 도커
- python-socketio
- AOP
- @Header
- 운영체제
- 롬복주의점
- none이미지
- OS
- spring-data-jpa
- ReflectUtils
- 프로세스
- django-crontab
- Spring
- 문자열 리터럴
Archives
- Today
- Total
JH's Develog
[SpringBoot] Entity 속성정보 상속받기 본문
Entity를 작성할 때 id나 생성시간, 수정시간과 같은 속성정보는 모든 Entity에 동일하게 추가되는 정보이기 때문에 코드의 중복이 발생합니다.
Entity마다 중복되는 컬럼들을 따로 모아서 상속받을 수 있는 방법을 알아보겠습니다.
먼저 중복되는 컬럼들을 가지고 있는 BaseEntity를 생성합니다.
@Getter
@MappedSuperclass
@NoArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
}
@MappedSuperclass 어노테이션이 핵심입니다.
이 어노테이션은 해당 엔티티의 테이블을 생성하지 않고 속성정보를 상속받을 수 있게 해줍니다.
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "user")
@Entity
public class User extends BaseEntity {
private String username;
private String password;
private String email;
private String authority;
}
위 코드처럼 생성한 BaseEntity를 상속받기만 해주면 id, createdAt, updatedAt 컬럼이 User 엔티티에 자동으로 추가되게 됩니다.
'Spring' 카테고리의 다른 글
[Spring] Mockito의 Strict Stubbing과 lenient의 차이는? (0) | 2022.05.12 |
---|---|
[Spring Security] HandlerMethodArgumentResolver로 Authentication에서 Principal 정보 가져오기 (0) | 2022.04.14 |
[Spring Security] Bcrypt의 salt는 어디에 저장될까? (4) | 2022.01.31 |
[Spring Data JPA] Querydsl 세팅하기 (Springboot+mysql) (0) | 2022.01.30 |
[Spring Data JPA] MyBatis vs Hibernate vs Spring Data JPA (0) | 2022.01.23 |
Comments