728x90
/*Memo.java*/
package com.sparta.week03.domain;
...
@NoArgsConstructor // 기본생성자를 만듭니다.
@Getter
@Entity // 테이블과 연계됨을 스프링에게 알려줍니다.
public class Memo extends Timestamped { // 생성,수정 시간을 자동으로 만들어줍니다.
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
private Long id; //아이디
@Column(nullable = false)
private String username; //사용자이름
@Column(nullable = false)
private String contents; //내용
public Memo(String username, String contents) {
this.username = username;
this.contents = contents;
}
public Memo(MemoRequestDto requestDto) {
this.username = requestDto.getUsername();
this.contents = requestDto.getContents();
}
}
/*Timestamped.java*/
package com.sparta.week03.domain;
...
@MappedSuperclass // Entity가 자동으로 컬럼으로 인식합니다.
// 이 클래스를 상속받은 클래스에서 생성/수정시간 컬럼을 자동으로 잡도록 함
@EntityListeners(AuditingEntityListener.class) // 생성/변경 시간을 자동으로 업데이트합니다.
public abstract class Timestamped {
//abstract: 상속이 되어야만 new를 할 수 있음
@CreatedDate
private LocalDateTime createdAt; //생성일
@LastModifiedDate
private LocalDateTime modifiedAt; //수정일
}
- JPA 공식 홈페이지
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
/*MemoRepository.java*/
package com.sparta.week03.domain;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
//extends JpaRepository<Memo, Long>:
// JPARepository 기능을 가져다가 쓸거다
// Memo 클래스, Long인 아이디를 가져다쓸거다
public interface MemoRepository extends JpaRepository<Memo, Long> {
//findAllByOrderByModifiedAtDesc():
// find All By OrderBy ModifiedAt Desc
// 데이터를 모두 조회하는데 역순으로 ModifiedAt 컬럼을 정렬해라
List<Memo> findAllByOrderByModifiedAtDesc();
}
/*MemoRequestDto.java*/
package com.sparta.week03.domain;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@Getter
public class MemoRequestDto {
private String username;
private String contents;
}
'Spring Framework' 카테고리의 다른 글
타임라인서비스) Controller 만들기 (0) | 2021.07.21 |
---|---|
타임라인서비스) Service 만들기 (0) | 2021.07.21 |
API - POST, PUT, DELETE (0) | 2021.07.21 |
API-GET (0) | 2021.07.18 |
Lombok, DTO (0) | 2021.07.18 |