스프링 공부/JPA

[JPA] 4. 객체를 데이터베이스와 매핑시키기 - 엔티티 매핑

장아장 2022. 10. 20. 18:05

객체-관계형 데이터베이스를 매핑시키는 프레임워크인 JPA를 쓰는 것이 좋은 이유들에 대해 알아보았다면, 이젠 정말로 어떻게 매핑을 시킬지 알아야 한다. 이론을 배워도 기술을 쓰기 위핸 기술을 배워야 한다!

 

객체-관계형 데이터베이스를 매핑시켜주는 방법은, 관계형 데이터베이스의 구조를 간단하게 봐야 할 필요가 있다. 

 

객체(Entity)를 만들 때, 객체에 매핑을 해서, 객체 클래스를 하나의 테이블로 만들 수 있다. 

객체 테이블 @Entity, @Table
필드와 컬럼 @Column, @Temporal, @Enumarted, @Lob, @Transient
기본키 @Id, @GeneratedValue
연관관계 매핑(외래키) @ManyToOne, @OneToMany, @ManyToMany, @JoinColumn

이를 이용해 객체 클래스 하나를 테이블 하나와 매핑시킬 수 있다. 

각 종류에 대해서는 따로 정리를 해두어야 할 것 같다. 

기본적으로 알아야 할 것은

테이블에는 테이블 자체의 이름

컬럼에서는 컬럼의 이름, unique한지, not null인지, 값을 매핑시키지 않을 것인지, 혹은 값을 어떻게 저장할지

기본키는 어떤게 기본키인지, 기본키를 어떻게 생성시킬지

외래키는 연관관계의 구성이 어떻게 되는지를 정리해둔다.

 

데이터베이스 자체에서도 물론 외래키 설정을 해둔다.

데이터베이스 상에서 이미 외래키로 작성되어있다면 물론 필요가 없을 수도 있지만,  

자바 코드를 보고 이게 외래키인지 뭔지를 바로 알 수 있기 때문에 작성하는 것을 권장한다고 한다.