스파르타코딩클럽
웹개발의 봄, spring
2주차 4강~ 코드 입니다.
@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;
}
}
class Person {
private String name;
private String getName() {
return this.name;
}
}
class Tutor extends Person {
private String address;
// Person 클래스를 상속했기 때문에,
// name 멤버변수와 getName() 메소드를 가지고 있습니다.
}
@MappedSuperclass // 상속했을 때 멤버변수가 있을텐데, 그것도 컬럼으로 인식하게 해줘
@EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 설정
//Entity (테이블)을 Listeners 주시하다가, Auditing 수정(감사)해줘
public abstract class Timestamped {
// abstract : 직접 구현X, 상속으로만 쓸 수 있음
// new 안되고 extends로만 됨
@CreatedDate // 생성일자임을 나타냅니다.
private LocalDateTime createdAt;
@LastModifiedDate // 마지막 수정일자임을 나타냅니다.
private LocalDateTime modifiedAt;
}
@EnableJpaAuditing
추가해주면, 생성일자 & 수정일자에 따라서 날짜가 자동으로 업데이트 될 것.