I'd be interested whether there is the difference between javax.persistence.Id and org.springframework.data.annotation.Id.
- If Spring has created that annotation only for support the JPA annotation, then why?
- Does
org.springframework.data.annotation.Idhave another [additional] purpose?
1 Answer
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.
javax.persistence.Id is the annotation defined by JPA for all its implementations. Have in mind JPA only applies for management of relational data.