Ver Mensaje Individual
  #11 (permalink)  
Antiguo 16/11/2010, 18:05
Avatar de Xerelo
Xerelo
 
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema campo int J2ee

Entendido, vamos por partes.

int edad tiene un valor inicial 0 (independiente de si le pasas valor o no) porque

Cita:
private DatosPersonales datosPersonales = new DatosPersonales();
Los atributos de clase se inicializan automáticamente, int a 0, String a "", objetos a null...

Con respecto al error de Integer en el catch, como te decía en mi nota anterior, si tú tienes un Integer null y tratas de convertirlo en int, da error, y eso es lo que pasa en

Cita:
insertar.setInt(6, datosPersonales.getEdad());
Tienes dos opciones, darle valor 0 a edad para que no sea nulo o usar setNull si estás especialmente interesado en pasarle un valor null a la BDDDD, pero primero necesitas comprobar que realmente es null.

Del enlace que te puse
Cita:
// Does the equivalient of stmt.setInt(col, i) but preserves nullness.
protected static void setInt(PreparedStatement stmt, int col, Integer i)
throws SQLException
{
if (i == null)
stmt.setNull(col, java.sql.Types.INTEGER);
else
stmt.setInt(col, i);
}
http://download.oracle.com/javase/1....8int,%20int%29

Lo que podrías probar es a declarar en tu clase lo mismo que hacías con los int

private Integer numExpediente = 0; aunque me parece que te lo sobreescribirá con un null.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.