게시판 만들어보기 5일차

박세건·2023년 6월 24일
0

글 작성 기능

글 작성 폼을 조금 더 완성도 있게 작성하기 위해서 summerNote를 사용했다.
writeForm.html

<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorate="~{layout/default_layout}">
<div layout:fragment="content">
    <!-- Section-->

    <section class="container">
        <h1>글 작성</h1>
        <form action="/board/save" method="post">
            <div class="form-group">
                <label for="title"> 제목 : </label>
                <input type="text" class="form-control" id="title" placeholder="제목을 작성하세요" name="title">
            </div>
            <br>
            <div class="form-group">
                <label for="summernote"> 내용 : </label>
                <textarea id="summernote" name="content"></textarea>
            </div>
            </br>
            <button type="submit" class="btn btn-primary">글 작성</button>
        </form>
        <script>
    // 메인화면 페이지 로드 함수
    $(document).ready(function () {
        $('#summernote').summernote({
            placeholder: '내용을 작성하세요',
            height: 400,
            maxHeight: 400
        });
    });

        </script>
    </section>
</div>

게시글을 담당하는 Board 클래스

board Entity

package com.example.board_project.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.data.annotation.CreatedDate;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Builder
public class Board {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column(nullable = false)
    private String title;

    @Column(nullable = false)
    private String content;

    @Column
    private int hit;    //board 가 작성되는 순간 0 으로 설정

    @Column(nullable = false)
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "userId")
    private User user;

    @Column
    @OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.REMOVE)
    @JoinColumn(name = "replyList")
    private List<Reply> replyList;

    @CreationTimestamp
    private Timestamp createTime;
}

reply Entity

package com.example.board_project.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;

import javax.persistence.*;
import java.sql.Timestamp;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Reply {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column(nullable = false)
    private String content;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "userId")
    @Column(nullable = false)
    private User user;

    @Column
    private int hits;
//    private Board board;  board를 추가하는 것이 맞을까 board한테 reply 목록이 있기때문에 고민

    @CreationTimestamp
    private Timestamp createTime;
}
profile
멋있는 사람 - 일단 하자

0개의 댓글