JSF

Problemas al insertar en SQL Server con JSF

Cuando por algún motivo debamos usar una mezcla rara entre Java Server Faces y SQL Server 2005 seguramente tendremos algúnos problemas al momento de insertar datos en alguna tabla que contenga una definición de campo IDENTITY.

El error que nos saldrá será algo como esto:

No se puede insertar un valor explícito en la columna de identidad de la tabla ‘contrasenas’ cuando IDENTITY_INSERT es OFF.

La solución a esto es simple, aunque quizá ya hayas llegado a este sitio cansado de buscar una solución  y si no eres muy  hábil usando google y tampoco sabes un poco de ingles pues entonces si que debes haber sufrido, pero bueno, aquí te propongo la solución.

Solamente debemos crear un arreglo de tipo boolean indicando en el mismo orden en el que estan declaradas en la BD las columnas, los valores false para aquellas columnas que deseamos excluir del INSERT y TRUE para las que si deseamos insertar un valor. Entonces pues, tendrémos algo asi:

boolean b[] = {false, true, true};

Donde el primer argumento es false pues se trata del campo IDENTITY. Finalmente tomamos al RowSet y le pasamos dicho arreglo a su propiedad InsertableColumns.

this.getSessionBean1().getContrasenasRowSet().setInsertableColumns(b);

He aquí un ejemplo del código.

y con esto tendremos solucionado dicho problema.

Si la información te fué útil, considerá dejar algún comentario, duda, queja o sugerencia, para saber al menos que lo que escribo, es útil para alguien.

Saludos!!

6 comentarios en “Problemas al insertar en SQL Server con JSF

  1. Buen dia.

    que buen ejemplo

    Tengo una pregunta. como hago para filtrar una consulta
    Obtener el parametro en un TextField, en Row Set Queda de esta manera SELECT * FROM MITABLA WHERE ID = ?

    Por Favor
    Mil Gracias

Deja un comentario