L'annotation @Id offre le mécanisme le plus simple pour définir le mappage à la clé primaire.
Nous déconseillons l'utilisation des types à virgule flottante (float et double, ainsi que leurs classes d'encapsulation) pour les données décimales, car ils peuvent conduire à des erreurs d'arrondi et le résultat de l'opérateur égale n'est pas fiable dans ces cas-là. Utilisez le type BigDecimal à la place.
L'annotation @Id est idéale dans les cas de figure où une clé primaire naturelle est disponible ou lorsque les concepteurs de bases de données utilisent des clés primaires de substitution (généralement des entiers) qui n'ont pas de valeur descriptive et qui ne sont pas dérivées de données d'application puisées dans la base de données. De leur côté, les clés composites sont utiles lorsque la clé primaire de la table de données correspondante consiste en plusieurs colonnes. Les clés composites peuvent être définies par l'annotation @IdClass ou @EmbeddedId.