Skip to content

4. Entity Annotation에 대해 알아보자

chodakk edited this page Mar 3, 2022 · 3 revisions

전체 글을 저장하는 클래스를 간추려(^^) 가져왔다.

@Entity
@NoArgsConstructor
@Table(name = "ENTIRE_POST")
class EntirePostEntity(
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private val postid : Long,

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "userid", nullable = false)
    private val userid : UserLoginEntity,

    @Column(nullable = false, length = 30)
    private var subject : String,

    @Column(nullable = false, columnDefinition = "TEXT")
    private var content : String,

    @Column(nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private var date : Date,

    @Column(columnDefinition = "integer default 0")
    private var countcomment : Int,
)

Entity : 테이블과 똑같은 객체 만들어주세요. JPA님.
Table : SQL에 테이블 만들 때 이런 속성으로 해주시죠 JPA님?
Id : 아래에 올 변수가 기본키(PK)예요. 저장해주시죠?
GeneratedValue : Auto-Increase 입니다? 우리가 귀찮게 key값 하나씩 안올려도 되죠?
ManyToOne : 아 이거 외래키인데 1:다 관계. 제가 '다'쪽입니당
fetch : 3번 문서 참고
JoinColumn : 기본키가 userid인 Column명을 찾아서 연결해주세용ㅎㅎ. 아 null값 노노~
Column : 아 이거 그냥 일반 Column 선언~ 길이는 30으로 제안해주세요~
columnDefinition : SQL에 적용될 자료형 선언~ 여기 자료형으로 표현이 안돼요~
TimeStamp : 이건 날짜랑 시간 자료형입니다^^
integer default 0 : 이건 자료형이 정수인데 기본값 주려구요 ㅎ