Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problemas con Hibernate+SQL SERVER y IDENTITY

Estas en el tema de Problemas con Hibernate+SQL SERVER y IDENTITY en el foro de Programación General en Foros del Web. Hola a todos, A ver si alguien puede ayudarme en este tema. Estoy trabajando con hibernate desde archivos DAO. Tengo un campo en una tabla ...
  #1 (permalink)  
Antiguo 16/10/2007, 02:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Problemas con Hibernate+SQL SERVER y IDENTITY

Hola a todos,

A ver si alguien puede ayudarme en este tema. Estoy trabajando con hibernate desde archivos DAO. Tengo un campo en una tabla k kiero insertar que es auntonumerico (IDENTITY(1,1)). El problema es que con el hibernate tengo k hacer un session.save(classe) y me da el siguiente error.
"Cannot insert explicit value for identity column in table 'Classe' when identity_insert is set to OFF"

Lo que me esta diciendo esque le estoy intentando entrar un valo a algo autonumerico. Pr lo que quiero hacer es poder guardar este registro entero sin que kiera entrarme el jodido ID.

Por tanto la solucion de SET IDENTITY_INSERT ON no me vale ya que sí quiero que se me haga por defecto.
Ademas, en el constructor por defecto no le añado ningun valor al campo autonumerico.

El mappeo que le he echo al identificador es el siguiente:
/**
* @hibernate.id
* generator-class="native"
* column="IdMaterialLot"
* update="false"
*/

Alguien puede ayudarme en ello por favor? Si alguien ademas tiene la solucion de como entrar consultas a pelo por hibernate (y que funcione, x favor xD) que lo postee tambien,

Gracias, Behere
  #2 (permalink)  
Antiguo 03/12/2008, 10:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problemas con Hibernate+SQL SERVER y IDENTITY

Lo primero que puede hacer es en el VO o POJO colocar

@Id
@GeneratedValue
private int id;
//Mirar Hibernate Annotations.
Con esto le indicamos al maldito hibernate que el campo id es el PK y que es autogenerado por el motor.

Si no funciona cambiar el DAO, el medoto save por

String insert = "insert into tabla (campo1) value (?)";
Query queryObject = getSession().createSQLQuery(insert);
//Para agregar los parametros
queryObject.setInteger(0,campo1);
queryObject.executeUpdate();

No se coloca en el insert el id porque es autogenerado por el motor de la base de datos.
Con eso hacemos el insert precticamente a "mano".

PD: Hibernate es una porqueria total, no funciona bien, no facilita las cosas y muchas veces pone mas trabajo del que es realmente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:11.