Generators behavior explained

Published 19 March 9 5:53 PM | Tommaso Caldarola

Segnalo un post di Fabio Maulo, project leader di NHibernate, per segnalare l’importanza di una corretta impostazione per le chiavi primarie. Leggendo il post attentamente la cosa sconcertante riguarda l’uso di Identity, e in particolar modo se si esegue il flush di una session senza transazione ci troviamo di fronte ad una INSERT!!! Consiglio la lettura per tutti coloro che usano NHibernate o che pensano di usarlo in futuro, la cosa vale anche per qualsiasi altro ORM. Nell’articolo si parla anche degli altri due tipi che vanno per la maggiore, il tipo HiLo e il tipo GUID.

Io continuo ad usare HiLo, certo presenta i suoi piccoli svantaggi (in termini di integrazione con procedure esterne) ma l’obiettivo è comunque di sperimentare GUID in un futuro prossimo. Per quest’ultimo quello che mi frena è la diagnostica, o eventuali report sempre a fini di diagnosi all’amministratore del sistema.

Ad ogni modo, che il problema sia sentito lo dimostra anche il “putiferio” scatenatosi nel post di Raffaele Rialdi sul bug presente in SQL SERVER 2005 (e che a quanto pare non verrà risolto nemmeno in SQL SERVER 2008) a proposito di Identity.

Filed under: ,