이번 게시글에서는 JPA를 설정한다.
필요한 객체를 만들어보자.
로그인 기능은 없고 글을 작성할 때 작성자를 입력 받을 것이다.
그리고 삭제할 때 필요한 삭제키도 필요하다고 생각했다.
@Entity
@Builder
@Getter @Setter
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public class Board {
@Id @GeneratedValue
private Long boardId;
@Column(nullable = false)
private String author;
@Column(nullable = false)
private String content;
@Column(nullable = false)
private String removeKey;
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime updatedDate;
private boolean visible;
}
@CreatedDate
, @LastModifiedDate
을 붙여주고@EntityListeners(AuditingEntityListener.class)
를 붙여준다.application 클래스에 @EnableJpaAuditing을 붙여 auditing 기능을 활성화 시킨다.
@EnableJpaAuditing
@SpringBootApplication
public class GraphQlApplication {
public static void main(String[] args) {
SpringApplication.run(GraphQlApplication.class, args);
}
}
그리고 JpaRepository를 만들고 필요한 기능을 작성한다.
조회, 저장, 삭제 기능이 필요하다.
public interface BoardRepository extends JpaRepository<Board,Long> {
List<Board> findByVisibleOrderByCreatedDateDesc(boolean visible);
Optional<Board> findByBoardId(Long boardId);
Board save(Board board);
}
조회는 visible값에 따라 조회를 했고 페이징 기능은 뺐다.
테스트 완료!