Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > JPA DataIntegrityViolationException

Buenos días, a ver si alguien me puede echar una mano.

Estoy trabajando con Spring y JPA (Openjpa 2) y tengo que insertar 50 elementos en una tabla que tiene 8 campos. Tiene la restricción de primary Key y que dos campos tienen que tener valor único. Cuando inserto esos 50 elementos puede ser que se repitan esos dos campos y quería controlar la excepción y relanzar esa inserción (solo 2 veces).

Esto funciona correctamente pero cuando va a hacer el commit de toda la transacción me da fallo porque se sigue intentando insertar ese valor repetido.

DAO.

@Transactional
public Stuff saveStuff(Stuff stuff) throws NotUniqueException{
try {
this.entityManager.persist(stuff);
this.entityManager.flush();
}catch(Exception ex){

throw new NotUniqueException(stuff);

}
return stuff;

EN el servicio tengo puesto

@Transactional
public void guardar() {

for (int i=0;i<50;i++) {
try{
dao,saveStuff(crearStuff());
}catch(NoUniqueException e) {
dao,saveStuff(crearStuff());
}

}

}

abril 26, 2013 | Unregistered CommenterJavierM