관심쟁이 영호

[Spring Boot 기초] Board Table 생성 본문

Bank-End/Spring Boot

[Spring Boot 기초] Board Table 생성

관심쟁이 영호 2021. 4. 21. 02:04
반응형

이번엔 Board Table을 생성해보자.

먼저 코드를 살펴보면

 

// Board.java

@Entity
public class Board {
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY) //auto_increment
	private int id;
	
	@Column(nullable = false, length = 100)
	private String title;
	
	
	@Lob // 대용량 데이터용
	private String content; // 섬머노트 라이브러리 사용하기. 디자인할 때, <html>태그가 섞여서 디자인이 됨
	
	@ColumnDefault("0")
	private int count; //조회수
	
	
	//글쓴이를 작성하기 위해서는 id값을 통해서 Select를 한번더 해주어야하는데 이것을 안하기 위해서 jpa를 사용해야한다.
	//데이터베이스는 오브젝트를 저장할 수 없다. 그래서 자바는 오브젝트를 저장할 수 있다.
	//필드 값은 userid로 만들어지고, 연관관계는 many to one으로 만들어진다.
	//user를 참조하게 되고, 해당하는 값을 FK로 설정해준다.
	@ManyToOne //Many = Board, User = One
	@JoinColumn(name = "userId") 
	private User user;
	
	@CreationTimestamp
	private Timestamp creteDate;

}

 

이제 각각 살펴보자

 

@Lob :

이것은 대용량 데이터용이다. content를 html을 통해서 디자인을 해서 저장하기 때문에 대용량 데이터로 설정해주었다.

 

제일 중요한게,

private User user 부분이다.

해당하는 부분은 게시판에 글쓴이를 저장하는 것이다.

글쓴이를 저장하기 위해서는 user테이블에서 SELECT를 통해서 한번 더 조회를 해주어야 한다.

근데 이렇게 조회할 필요없이 바로 저장할 수 있다.

 

방법은, JPA기능을 이용하여 객체로 저장을 하는 것이다.

데이터베이스는 객체를 저장할 수 없고, 문자값만 저장할 수 있기 때문에 해당하는 설정이 필요하다.

 

@JoinColumn(name = "userId") : 

처음에 @Entity를 통해서 들어올 때, userid를 이용하여 FK를 생성해준다.

그리고 연관관계를

@ManyToOne을 설정해준다.

 

연관관계 설정은 매우 중요한 이야기이다.

그래서 다다음 게시글에 제대로 다루어 보자!

300x250
Comments