inblog logo
|
zerfa
    springboot

    CRUD-V2-01. 게시글에 글쓴이 정보 추가

    kimsoapsoap's avatar
    kimsoapsoap
    Sep 04, 2024
    CRUD-V2-01. 게시글에 글쓴이 정보 추가
    Contents
    1. User 클래스 만들기2. Board클래스에 외래키로 User 추가3. Hibernate Query format 설정
     

    1. User 클래스 만들기

     
    shot.mtcoding.blog에 user패키지를 만들고 여기에 User클래스 파일을 만든다.
    @Table(name = "user_tb") @Setter @Getter @NoArgsConstructor @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //1씩 증가하는 설정 private Integer id; @Column(unique = true, nullable = false) private String username; @Column(nullable = false) private String password; @Column(nullable = false) private String email; @CreationTimestamp //날짜가 null인 경우 현재 날짜를 넣어줌 private Timestamp createdAt; //객체 생성 편하게 하기 위해 생성자를 빌더 패턴으로. DTO 편하게 만들 때도 좋음 @Builder public User(Integer id, String username, String password, String email, Timestamp createdAt) { this.id = id; this.username = username; this.password = password; this.email = email; this.createdAt = createdAt; } }
     
     
     
     

    2. Board클래스에 외래키로 User 추가

     
    게시판(Board)정보에 글쓴이(User) 정보를 추가할 것이다. board_tb에 user_id컬럼을 추가할 것인데 한 명의 사용자가 여러 게시글을 작성할 수 있기 때문에 게시글과 사용자는 N:1 관계이다. N:1 관계에서는 N쪽에 외래키를 배치한다. 즉 Board에 User라는 외래키를 넣어주면 된다. 원래는 private Integer userId 이렇게 넣어주겠지만 @ManyToOne private User user; 이렇게 넣어준다. Hibernate가 board_tb에 user_id라는 컬럼으로 Integer 타입으로 만들어 준다. (Hibernate 테이블명 생성 전략. camelCase를 snake_case 로 바꿔준다. JPA의 Hibernate 특징으로 테이블 관계를 마치 자바 객체를 넣고 빼듯이 할 수 있게 해준다.
     
     
     
     

    3. Hibernate Query format 설정

     
     
    서버 시작시 콘솔에 hibernate가 생성하는 table을 보기 편하게 해주기 위해
    application.properties에 아래 설정을 해준다.
    # Query Format spring.jpa.properties.hibernate.format_sql=true
     
     
    다음 시간에는 이런 User 정보를 등록하는 회원가입 기능과 로그인 기능을 추가해보겠다
     
    Share article
    Contents
    1. User 클래스 만들기2. Board클래스에 외래키로 User 추가3. Hibernate Query format 설정

    zerfa

    RSS·Powered by Inblog