상속(extends)이란
"클래스의 상속"이라는 개념.
이미 단들어둔 클래스를 가져다 쓴다고 선언하는 것이다.
@예시 코드
class Person {
private String name;
private String getName() {
return this.name;
}
}
class Tutor extends Person {
private String address;
// Person 클래스를 상속했기 때문에,
// name 멤버변수와 getName() 메소드를 가지고 있다.
}
Tutor Class에 extends Person을 추가함으로써 Person Class가 Tutor Class에 상속된것을 확인할 수 있다.
상속받는 Tutor Class는 Tutor는 Tutor안에서 선언한 address뿐만 아니라 Person Class에서 선언된 name 맴버변수와, getName() 함수를 사용할 수 있다.
DB의 기본은 언제 데이터가 추가되었는지 언제 수정되었는지를 알아야한다.
Timestamped - "생성일자"와 "수정일자"를 필드로 가지는 Class를 만들어 상속을 어떻게 쓰는지 알아보자.
Timestamped.java(상속되는 칼럼 Timestamped)
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class Timestamped {
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime modifiedAt;
}
@코드 분석
@MappedSuperclass:
아래 코드가 상속되었을 때, 컬럼으로 인식하게 한다. (컬럼이란, DB의 table안의 데이터(열)을 말한다.)
@EntityListeners(AuditingEntityListener.class):
아래 코드가 생성/수정 시간을 자동으로 반영하도록 설정한다.
생성/수정 둘다 적용이 되지만 해당 코드에서 업데이트 되는 코드는 수정하는 코드밖에 없어 @EntityListeners는 해당 코드의 칼럼중 modifiedAt만 적용된다.
@CreatedDate:
아래 코드가 최초 생성일자임을 나타낸다.
@LastModifiedDate:
아래 코드가 마지막 수정일자임을 나타낸다.
DomainClass.java(상속받는 테이블 DomainClass)
class DomainClass extends Timestamped {}
class GetStamped {}를 다음과 같이 변경해준다.
@코드 분석
extends Timestamped:
Timestamped라는 Class를 상속받는다.
RunClass.java(서버를 실행시키는 RunClass)
@EnableJpaAuditing
@SpringBootApplication
public class RunClass {
@EnableJpaAuditing:
Audit은 감시하다, 감사하다 라는 뜻으로 @EnableJpaAuditing는 Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능이다.
@SpringBootApplication:
스프링 부트의 가장 기본적인 설정을 선언해준다.
'🍃웹개발 Spring' 카테고리의 다른 글
[Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조 (1) | 2022.09.27 |
---|---|
[Spring] JPA심화 (CRUD)_1 (0) | 2022.09.27 |
[Spring] JPA 기초(Domain, Repository) (1) | 2022.09.26 |
[Spring] JPA란. (1) | 2022.09.26 |
[SQL] SQL(CRUD) (0) | 2022.09.26 |