title: @Transactional not working
body: <p>Trying to implement @Transactional with no sucess in a spring , hibernate project with mode AspectJ</p>
  
  <p>Method on which @Transactional is used.</p>
  
  <pre><code>    @Transactional
      public void invokeService() throws Exception {
         Certificate certificate = (Certificate) domainObjects.get(Constants.CERTIFICATE);
         CertActObjRel accOvrRel = (CertActObjRel) domainObjects.get(Constants.CERT_ACC_OBJ_REL);
         if (certificate != null) {
          dao.insert(certificate);
          if (accOvrRel != null) {
                  dao.insert(accOvrRel);
          }
          CertObjRel certObjRel = (CertObjRel) domainObjects.get(Constants.CERT_OBJ_REL);
          if (certObjRel != null) {
                  List&lt;CertObjRel&gt; certObjRelArray = certObjRel.getCertObjRelArray();
              if (certObjRelArray != null &amp;&amp; certObjRelArray.size() &gt; 0) {
                      dao.insertList(certObjRelArray);
                      }
  
                  }
          }
              insertReqCertRelation();
              insertDistributions();
              fieldIssueUOW.fieldIssueCertificate(certificate);
          }
  </code></pre>
  
  <p>The method invokeService() is an abtsract method and implemented in subclass (with Transactional annotation. No @transactional annotation used for abtsract super calss method invokeService()) and is called from Drool rules engine on base object refrence. As the class bean is not a spring bean we are using compile time weaving. </p>
  
  <p>Spring config file declaration for transaction manager </p>
  
  <pre><code>&lt;tx:annotation-driven transaction-manager="transactionManager"  mode="aspectj"/&gt;
  
      &lt;bean id="transactionManager"
         class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;
          &lt;property name="sessionFactory"&gt;
              &lt;ref bean="sessionFactory" /&gt;
          &lt;/property&gt;
      &lt;/bean&gt;
  </code></pre>
  
  <p>Spring-aspect.jar is also pasted in WEB-INF/lib folder. Testing this method with </p>
  
  <pre><code> System.out.println("Transaction active:::: " + TransactionSynchronizationManager.isActualTransactionActive());
  </code></pre>
  
  <p>always returns false. If we are trying to retrieve the current session inside this method a null is returned . So it is sure that transaction is not running. Do we need to declare the class with method invokeservice() as @Aspect. Is @ Aspect a prerequisite for compiling time weaving. Even after decompiling .class file and looking at the code @Transactional remains there?.</p>