J'ai créé un intercepteur de mise en veille prolongée:afterTransactionCompletion ne fonctionne pas
public class MyInterceptor extends EmptyInterceptor {
private boolean isCanal=false;
public boolean onSave(Object entity, Serializable arg1, Object[] arg2, String[] arg3, Type[] arg4) throws CallbackException {
for(int i=0;i<100;i++){
System.out.println("Inside MyInterceptor(onSave) : "+entity.toString());
}
if(entity instanceof Canal){
isCanal=true;
}
return false;
}
public void afterTransactionCompletion(Transaction tx){
if(tx.wasCommitted()&&(isCanal)){
for(int i=0;i<100;i++){
System.out.println("Inside MyInterceptor(afterTransactionCompletion) : Canal was saved to DB.");
}
}
}
mais la méthode afterTransactionCompletion ne soit pas exécuté après une transaction est engagée. J'ai essayé toutes les façons que je connais, mais je ne peux pas le faire fonctionner. Ce qui est plus surprenant, c'est que la méthode onSave fonctionne bien.
Aide!
Could this be due to this bug ? :
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1956
Comment puis-je contourner ce bug si elle est la cause?
J'ai utilisé cette documentation: https://www.hibernate.org/hib_docs/v3/api/org/hibernate/EmptyInterceptor.html#afterTransactionCompletion(org.hibernate.Transaction). Il semble que nous n'utilisons pas le même document. plz, expliquez. – Attilah
Eh bien, je viens de googler. Cependant, le point clé est de regarder la signature de EmptyInterceptor - est-ce que votre signature correspond? – djna
J'ai utilisé l'annotation @Override. Ma signature correspond à la signature de EmptyInterceptor. – Attilah