Ad esempio, c'è una colonna di numeri interi in una tabella di database. Quindi nel modello java, può essere mappato sia come primitivo int e Numero intero. La mia domanda è la differenza tra int e Integer in questo caso? E preoccupazione per le prestazioni? Grazie!Qual è la differenza tra la classe primitiva e la classe wrapper nei mapping di colonne JPA (Hibernate)?
6
A
risposta
6
Tendo ad evitare l'uso di primitive. Questo è particolarmente vero per l'attributo Id. Ciò rende possibile rilevare un valore non ancora impostato testando per null
. Se si utilizza Java 5 o successivo, l'auto-boxing elimina il dolore (e non è un problema di prestazioni). Ma anche per altri attributi. Come sottolineato da @skaffman, le primitive non sono adatte per le colonne nullable e preferisco che il codice sia il più flessibile possibile.
3
Hai già menzionato la differenza - Integer
può essere null
, int
impossibile. Quindi se la colonna del tuo database è nullable, allora dovresti usare Integer
.
Per quanto riguarda le prestazioni, non me ne preoccuperei. Le moderne macchine virtuali sono molto brave in questo genere di cose.
ovviamente, so che si verificherà un'eccezione quando primitive int incontra valore nullo nel database. –