Mysql
 sql >> Base de données >  >> RDS >> Mysql

Verrouillage optimiste de l'hibernation... comment ça marche ?

Pour être précis, vous ne voulez pas dire un verrouillage optimiste, mais une concurrence optimiste (sans verrou). L'utilisation d'un horodatage pour la version est uniquement destinée à la prise en charge des bases de données héritées, car une base de données moderne peut (au moins théoriquement) fonctionner plus rapidement que sa précision de stockage un horodatage.

L'utilisation de la propriété version entière est très simple :

  • Lors de l'insertion :définissez la version sur 1
  • Sur la mise à jour et la suppression :augmentez la version avec 1 et ajoutez "where [email protected] " à chaque instruction sql. Renvoie le nombre d'enregistrements modifiés. Lance une exception StaleObjectStateException lorsque le nombre d'enregistrements modifiés est différent de celui attendu.

Personnellement, je ne créerais pas deux applications distinctes écrivant les mêmes données dans une situation non héritée, car cela signifie que la logique métier doit être dupliquée et que les modifications doivent être appliquées à deux applications, même lorsque la modification n'est pertinente que pour l'une des les candidatures.