2010-04-02 26 views
6

Por ejemplo, hay una columna entera en una tabla de base de datos. Luego, en el modelo de Java, se puede asignar como primitiva int y Entero. Mi pregunta es ¿cuál es la diferencia entre el int y el entero en este caso? Y la preocupación por el rendimiento? Gracias!¿Cuál es la diferencia entre la clase primitiva y contenedora en las asignaciones de columnas JPA (Hibernate)?

+0

por supuesto, sé que ocurrirá una excepción cuando la primitiva int cumple con el valor nulo en la base de datos. –

Respuesta

6

Tiendo a evitar el uso de primitivas. Esto es especialmente cierto para el atributo Id. Esto permite detectar un valor aún no establecido mediante la prueba de null. Si usa Java 5 o superior, el auto-boxing elimina el dolor (y no es una preocupación de rendimiento). Pero también para otros atributos. Como señala @skaffman, las primitivas no son adecuadas para columnas con nulos y prefiero que el código sea lo más flexible posible.

3

Usted ya ha mencionado la diferencia - Integer puede ser null, int no puede. Entonces, si la columna de su base de datos puede contener nulos, entonces debe usar Integer.

En cuanto al rendimiento, no me preocuparía. Las VM modernas son muy buenas en ese tipo de cosas.

Cuestiones relacionadas