Estou tentando fazer um interceptor que “commita” transações com o hibernate, peguei esse exemplo na documentação do Vraptor.
Esta dando problema na declaração:
Não sei se devo dar algum import pra usar “Database”, alguem pode me dar uma luz?
Obrigado!
segue a classe abaixo:
package br.com.caelum.goodbuy.interceptor;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.caelum.annotation.Transactional;
import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Intercepts;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.ioc.RequestScoped;
import br.com.caelum.vraptor.resource.ResourceMethod;
@RequestScoped
@Intercepts
public class TransactionInterceptor implements Interceptor {
private final Database controller;
public TransactionInterceptor(Database controller) {
this.controller = controller;
}
public void intercept(InterceptorStack stack, ResourceMethod method, Object instance) throws InterceptionException {
try {
controller.beginTransaction();
stack.next(method, instance);
controller.commit();
} finally {
if (controller.hasTransaction()) {
controller.rollback();
}
controller.close;
}
}
public boolean accepts(ResourceMethod method) {
return true;
}
}