I\'d be interested whether there is the difference between javax.persistence.Id and org.springframework.data.annotation.Id.
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.