JPA는 ORM으로 객체와 테이블의 데이터가 매핑함으로써 개발자로써 번거롭게 SQL을 작성하지 않고 쉽게 데이터들을 관리할 수 있다. 그러나 매핑할 클래스의 프로퍼티들에 대해서 섬세하게 다루지 않는다면 쉽게 오류가 날 수 있다는 단점이 존재한다.

프로젝트를 진행하며 일반적으로 선언하는 primitive 자료형이 아니라, 설정을 따로 해주어야 하는 자료형들에 대해 정리해보았다.

TINYINT

@Column(columnDefinition = "TINYINT", length = 1)
private int status;

Column 설정에서 columnDefinition = “TINYINT” 로 따로 명시해주어야 정상적으로 작동한다.

DateTime

public class Member{

	private LocalDateTime createdAt;
	private LocalDateTime updatedAt;

	@Column(name = "created_at")
  @PrePresist
	public void createdAt(){
		this.createdAt = LocalDateTime.now();
    this.updatedAt = createdAt;
	}

	@Column(name = "updated_at")
	@PreUpdate
   public void updatedAt(){
      this.updatedAt = LocalDateTime.now();
   }

}