[jakarta.persistence]와 [org.springframework.data.annotation]

Jiyeong Kim·2025년 2월 7일

TIL

목록 보기
19/24

Id 어노테이션을 추가할 때 마다 선택지가 다음과 같이 떴다.
평소에는 그냥 엔터를 쳐서 넘겼는데 막상 인식하고 보니까 둘 중 하나를 선택해야하는 건가 하는 생각이 들어서 머뭇거리게 되었다.

그래서 일단 둘다 무엇인지 알아보기로 했다.

jakarta.persistence

정의

JPA(Java Persistence API) 를 제공하는 패키지

역할

  • Jakarta Persistence defines a standard for management of persistence and object/relational mapping in Java(R) environments.(자바(R) 환경에서 영속성 및 객체/관계 매핑 관리를 위한 표준을 정의)

  • JPA 표준 API를 정의하며, JPA를 지원하는 모든 구현체(Hibernate, EclipseLink 등)에서 사용됨

주의 사항

  • JPA를 사용할 때는 jakarta.persistence를 써야한다. (JPA는 jakarta만 인식할 수 있기 때문)

    JPA will only recognize javax.persistence.Id (now jakarta.persistence.Id). Otherwise it will throw an exception: Error creating bean with name 'entityManagerFactory' ... Entity has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property) stackoverflow.com

org.springframework.data.annotation

정의

Spring Data 프로젝트에서 사용되는 주요 애노테이션(annotation)들이 포함된 패키지

역할





비교

org.springframework.data.annotation.Id is currently used by Spring to support mapping for other non relational persistence databases or frameworks that do not have a defined common persistence API like JPA. So, it is normally used when dealing with other spring-data projects such as spring-data-mongodb, spring-data-solr, etc. stackoverflow.com

javax.persistence.Id is the annotation defined by JPA for all its implementations. Have in mind JPA only applies for management of relational data. stackoverflow.com

간단하게 JPA는 자카르타, NoSQL 데이터베이스를 사용하는 경우는 springframework~를 쓴다.

profile
해봅시다

0개의 댓글