Java 진영에서 만들어진 데이터베이스와 JVM 사이의 패러다임 불일치를 해결하기 위한 ORM Specification.

반복적인 CRUD SQL 작업을 제거하고 보다 객체 지향적인 방법으로 영속성 저장소를 다루기 위해 탄생함.

데이터 접근을 추상화하고 벤더와의 독립성을 보장한다.

주 구현체로는 hibernate, eclipseLink 등등이 존재한다

@Entity("MEMBER")
@Table(name = "member")
data class Member(
  @Id val id,
  @Column("name) val userName,
  @Enumerated(EnumType.String) val type,
  @Temporal(TemporalType.TimeStamp) val date
)