2017-10-04 1 views
1

Ceci est mon Entity:Manipulation @Transactional rollbackFor à la clause @Where

@Entity 
@Table(name = "example") 
@Where(clause = "count >= 0") 
public class Example { 
    @Column(name="count") 
    private Integer count; 

    //some code 
} 

Ceci est mon DML opération:

@Transactional(rollbackFor = Exception.class) 
public void updateService { 
    update(); 
} 

void update(){ 
    // findOne(Id) - if null throw Exception 
    // --count & save()      //line 8 
    // findOne(Id) if null throw Exception  //line 9 
    // --count & save() 


    // if something fails 
    throw new Exception("Exception thown."); 
} 

Supposons que la valeur initialement count est 0 pour Id en db. line 9 retournera également un enregistrement car line 8 n'a pas encore été validée. Il n'y a pas de exceptionthrown. Il ne sera pas rollback et mettre à jour le DB, ce qui ne devrait pas arriver. Quelqu'un peut-il aider, Si une solution hibernate/JPA existe pour cela.

Répondre