javax.persistence.Id 和 org.springframework.data.annotation.Id 有什么区别?

What's the difference between javax.persistence.Id and org.springframework.data.annotation.Id?

我想知道 javax.persistence.Idorg.springframework.data.annotation.Id 之间是否有区别。

  1. 如果 Spring 只是为了支持 JPA 注释而创建了该注释,那为什么呢?
  2. org.springframework.data.annotation.Id是否还有其他[额外]目的?

org.springframework.data.annotation.Id 当前被 Spring 用于支持其他非关系持久性数据库或框架的映射,这些数据库或框架没有像 JPA 这样定义的公共持久性 API。所以,一般在处理其他spring-data项目如spring-data-mongodb、spring-data-solr等时使用

javax.persistence.Id 是 JPA 为其所有实现定义的注解。请记住,JPA 仅适用于关系数据的管理。