sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan udfører du versionering i Nhibernate?

Nej. Låse placeres kun for omfanget af en transaktion, som i en webapplikation slutter, når anmodningen slutter. Standardtypen for transaktionsisoleringstilstand er også Læs begået hvilket betyder, at læselåse frigives, så snart select-sætningen afsluttes. Hvis du læser og foretager redigeringer i den samme anmodning og transaktion, kan du placere en læse- og skrivelås på rækken ved hånden, hvilket ville forhindre andre transaktioner i at skrive til eller læse fra den række. Denne type samtidighedskontrol fungerer dog ikke godt i en webapplikation.

Dette ville ske, hvis [optimistisk samtidighed] blev brugt. I NHibernate fungerer optimistisk samtidighed ved at tilføje en versionsfelt . Gem/opdater kommandoer udsendes med den version, som opdateringen var baseret på. Hvis det afviger fra versionen i databasetabellen, opdateres ingen rækker, og NHibernate vil kaste.

Nej, låsen udløses i slutningen af ​​anmodningen.

Samlet set er dit bedste bud at vælge optimistisk samtidighed med versionsfelter, der administreres af NHibernate.



  1. Hvordan vælger man en SQL over flere partitioner?

  2. MySQL – Ret fejl – WordPress-databasefejl Duplikatindtastning for nøgle PRIMÆR for forespørgsel INSERT INTO wp_options

  3. Springboot postgres Det lykkedes ikke at bestemme en passende førerklasse

  4. LAST_NUMBER på orakelsekvens