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

kimsoapsoap's avatar
Sep 04, 2024
CRUD-V2-01. 게시글에 글쓴이 정보 추가
 

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

zerfa