Spring - 코드 읽는 방법

0

Spring

목록 보기
2/23

스파르타코딩클럽

웹개발의 봄, spring 2주차 4강~ 코드 입니다.

Course.java 클래스

@NoArgsConstructor // 기본생성자를 대신 생성해줍니다.
@Entity // 테이블임을 나타냅니다.
public class Course extends Timestamped{
// timestamped 상속받음

    @Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
    @GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령입니다.
    private Long id;

    @Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
    private String title;

    @Column(nullable = false)
    private String tutor;

    public String getTitle() { // getter 설정
        return this.title;
    }

    public String getTutor() {
        return this.tutor;
    }

    public Course(String title, String tutor) {  // 생성자
        this.title = title;
        this.tutor = tutor;
    }
}
  • setter 설정 안하는 이유?
    나중에 Repository에서 자동으로 해주기 때문에 getter만 설정해주면 됨.

상속 예시 코드

class Person {
	private String name;
	private String getName() {
		return this.name;
	}
}

class Tutor extends Person {
	private String address;
	// Person 클래스를 상속했기 때문에,
	// name 멤버변수와 getName() 메소드를 가지고 있습니다.
}

Timestamped.java 클래스

@MappedSuperclass // 상속했을 때 멤버변수가 있을텐데, 그것도 컬럼으로 인식하게 해줘
@EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 설정
//Entity (테이블)을 Listeners 주시하다가, Auditing 수정(감사)해줘
public abstract class Timestamped {
// abstract : 직접 구현X, 상속으로만 쓸 수 있음
// new 안되고 extends로만 됨
    @CreatedDate // 생성일자임을 나타냅니다.
    private LocalDateTime createdAt;

    @LastModifiedDate // 마지막 수정일자임을 나타냅니다.
    private LocalDateTime modifiedAt;
}
  • Week02Application 에서 import 밑에
@EnableJpaAuditing

추가해주면, 생성일자 & 수정일자에 따라서 날짜가 자동으로 업데이트 될 것.

profile
백엔드를 공부하고 있습니다.

0개의 댓글