게시판 만들기 - 1

JIWOO YUN·2024년 4월 17일
0

게시판만들기

목록 보기
1/21
post-custom-banner

과연 나는 제대로 알고 있는것인가 하면서 게시판을 다시 만드는 과정을 진행할 예정이다.

기본 Start.spring에서 파일을 생성하고 밑의 파일을 add하여 만들기.

  • SpringWeb
  • Lombok
  • devTool
  • JPA
  • H2
  • Thymeleaf

게시판의 엔티티 만들기

Question 의 필요한 속성들

  • id
  • subject -> 질문의 제목
  • content -> 질문의 내용
  • createDate
@Getter
@Setter
@Entity
public class Question {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(length = 200)
    private String subject;

    @Column(columnDefinition = "TEXT")
    private String content;

    private LocalDateTime createDate;
}

Answer에 필요한 속성들

  • id
  • question : 질문의 데이터
  • content -> 답변 내용
  • createDate
@Getter
@Setter
@Entity
public class Answer {

    @Id
    @GeneratedValue(strategy = IDENTITY)
    private Integer id;

    @Column(columnDefinition = "TEXT")
    private String content;

    private LocalDateTime createDate;


    @ManyToOne
    private Question question;

}
  • setter 부분은 없는편이 좋다.
    • setter가 존재하게되면 어디서든 바꾸는게 가능해짐 -> 문제가 발생하기 좋은 구조
    • setter 대신에 update를 추가로 만들거나 해서 따로 관리하는게 좋음.

Question 과 Answer는 일대다 관계

  • Answer쪽에 ManytoOne
  • Question쪽에 OneToMany

yml 파일에 설정 할때 꼭 띄어쓰기랑 문법 맞춰서 사용하자.

spring:
  h2:
    console:
      enabled: true
      path: /h2-console
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:tcp://localhost/~/local
    username: sa
    password: 
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      format_sql: true
  • datasource의 띄어쓰기가 잘못되어 안먹는 거 조심하자.

repository 생성

  • JpaRepository를 인터페이스로 상속해줌으로써 JPA가 제공하는 CRUD 작업을 처리하는 메서드를 사용 할 수있다.

  • public interface QuestionRepository extends JpaRepository<Question,Integer> {
    }
profile
열심히하자
post-custom-banner

0개의 댓글