2010-04-02 14 views
6

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)?

+0

ovviamente, so che si verificherà un'eccezione quando primitive int incontra valore nullo nel database. –

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.

Problemi correlati