title: JdbcTemplate not work when use @Transactional annotation
body: <p>When use spring data and jdbctemplate in same function
  spring data work fine but jdbc update not work .</p>
  
  <p>this is service class.
  jdbc update then not error occurred but database not updated</p>
  
  <pre><code>@Service
  public class SampleService {
      private static final Logger logger = LoggerFactory.getLogger(SampleService.class);
  
      @Inject
      private SampleRepository sampleRepository;
  
      @Inject
      private JpaTransactionManager transactionManager;
  
      private JdbcTemplate jdbcTemplate() {
          return new JdbcTemplate(transactionManager.getDataSource());
      }
  
      @Transactional(propagation=Propagation.REQUIRED)
      public void execute(){
  
          sampleRepository.deleteAll();
          sampleRepository.save(new Sample("sample"));
  
          logger.info("data count (after jpa insert) : {}", sampleRepository.count());//1
  
          int count = jdbcTemplate().update("insert into Sample (sample) values ( ? )", "sample");
          logger.info("jdbc insert count: {}", count);//1
  
          logger.info("data count (after jdbc insert) : {}", sampleRepository.count());//expected: 2 , actual:1
  
          count = jdbcTemplate().queryForObject("select count(id) from Sample", Integer.class);
          logger.info("data count (after jdbc insert) : {}", count); //jdbc count query result also return 1
  
      }
  </code></pre>
  
  <p>when not use @Transactional annotation then work fine.</p>
  
  <pre><code>    public void execute2(){
  
          DefaultTransactionDefinition def = new DefaultTransactionDefinition();
          def.setName("testTx");
          def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
  
          TransactionStatus status = transactionManager.getTransaction(def);
  
          ... this method work fine ...
  
          transactionManager.commit(status);
  
      }
  
  }
  </code></pre>
  
  <p>and this is data access configuration.</p>
  
  <pre><code>&lt;context:annotation-config /&gt;
  &lt;tx:jta-transaction-manager /&gt;
  &lt;tx:annotation-driven transaction-manager="transactionManager" /&gt;
  &lt;jpa:repositories base-package="example" /&gt;
  
  &lt;context:property-placeholder location="classpath:config.properties" /&gt;
  
  
  &lt;bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /&gt;
  
  &lt;bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt;
      &lt;property name="dataSource" ref="dataSource" /&gt;
      &lt;property name="persistenceUnitName" value="DefaultUnit" /&gt;
      &lt;property name="jpaVendorAdapter"&gt;
          &lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"&gt;
              &lt;property name="showSql" value="${db.showsql}" /&gt;
              &lt;property name="generateDdl" value="${db.generateDDL}" /&gt;
              &lt;property name="database" value="${db.database}" /&gt;&lt;!-- H2 --&gt;
          &lt;/bean&gt;
      &lt;/property&gt;
  &lt;/bean&gt;
  
  &lt;bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy"&gt;
      &lt;constructor-arg ref="basicDataSource" /&gt;
  &lt;/bean&gt;
  
  &lt;bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&gt;
      &lt;property name="driverClassName" value="${db.driver}" /&gt;
      &lt;property name="url" value="${db.url}" /&gt;
      &lt;property name="username" value="${db.user}" /&gt;
      &lt;property name="password" value="${db.pass}" /&gt;
      &lt;property name="defaultAutoCommit" value="false" /&gt;
  &lt;/bean&gt;
  
  &lt;bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"&gt;
      &lt;property name="entityManagerFactory" ref="entityManagerFactory" /&gt;
  &lt;/bean&gt;
  </code></pre>