/** * */ package com.googlecode.tawus.hibernate.internal.advices; import org.apache.tapestry5.ioc.Invocation; import org.apache.tapestry5.ioc.MethodAdvice; import com.googlecode.tawus.hibernate.services.HibernateSessionManager; public class NeverTransactionAdvice implements MethodAdvice { private HibernateSessionManager sessionManager; private String factoryID; public NeverTransactionAdvice(String factoryID, HibernateSessionManager sessionManager) { this.sessionManager = sessionManager; this.factoryID = factoryID; } @Override public void advise(Invocation invocation) { if(sessionManager.isWithinTransaction(factoryID)){ throw new RuntimeException("Cannot proceed within a transaction"); } invocation.proceed(); } }