WEB COMPUTING/개발일지

[ KAKAO_TOY2_BACK.01] DB

Mink__02 2024. 2. 29. 17:52

https://hyomee.tistory.com/124

 

Spring-Data-JPA Annotation

객체와 테이블 매핑 : @Entity, @Table 기본키 매핑 : @Id, @GeneratedValue, @SequenceGenerator, @TableGenerator 필드와 컬럼 매핑 : @Column, @Enumerated, @Temporal, @Lob, @Transient 어노테이션 적용 기능 @Entity 클래스 JPA 에게

hyomee.tistory.com

1. 객체 & 테이블 매핑 ( 적용 → Class)

: @Entity, @Table

2. 기본키 매핑 

: @Id (적용 →클래스/필드), @GeneratedValue, @SequenceGeneration, @TableGEnerator

3. 필드& 컬럼 매핑

: @Cloumn, @Dnumerated, @TEmporal, @Lob, @Transient

4. 연관 관계 매핑

: @OneToOne, @OneToMany, @ManyToOne, @ManyToManym @Joincloumn

5. 참조키

: @JoinCloumn(name="..")

6. Lombok

: @Getter & @Setter ( 접근자/설정자 자동생성)
  @NoArgsConstructor & @AllArgsConstructor & @RequredArgsConstructor (생성자 자동 생성)
  @toString() (ToString 메소트 자동 생성)

// CommentEntity
package com.gg.mafia.domain.board.domain;

import jakarta.persistence.*;
import lombok.*;


@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Table(name="Comment")
public class CommentEntity {

    @Column(unique = true, nullable = false)
    private String id; //댓글 id

    @Column()
    private String comment; //댓글

    @ManyToOne(cascade = {CascadeType.PERSIST}) //영속성전이0
    @JoinColumn(name ="Profile")
    private String profile_id;

    @ManyToOne//영속성 전이x
    @JoinColumn(name = "User")
    private String User_id;

}

profile: 계정 주인이 사라지면, 관련된 내용 사라져야하기 때문에, profile_id는 영속성 전이 O / user_id 는 영속성 전이 X