В чем разница между javax.persistence.Id и org.springframework.data.annotation.Id?

Мне было бы интересно, есть ли разница между javax.persistence.Id и org.springframework.data.annotation.Id.

  1. Если Spring создал эту аннотацию только для поддержки аннотации JPA, то почему?
  2. Есть ли у org.springframework.data.annotation.Id другая [дополнительная] цель?

person Andrew Tobilko    schedule 22.09.2016    source источник


Ответы (1)


org.springframework.data.annotation.Id в настоящее время используется Spring для поддержки сопоставления для других нереляционных баз данных сохраняемости или фреймворков, у которых нет определенного общего API сохраняемости, такого как JPA. Таким образом, он обычно используется при работе с другими проектами Spring-данных, такими как spring-data-mongodb, spring-data-solr и т. Д.

javax.persistence.Id - это аннотация, определенная JPA для всех его реализаций. Имейте в виду, что JPA применяется только для управления реляционными данными.

person megalucio    schedule 22.09.2016
comment
Я понимаю, что вы не сможете использовать идентификатор javax для нереляционной персистентности, но могу ли я использовать Spring ID для базовой реляционной сущности JPA? В принципе, безопасно ли всегда использовать Spring ID? - person Snekse; 18.12.2020