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.
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());
}
}
}