title: Spring data-jpa Transactional does not work on service
body: <p>Here is my service method:</p>
  
  <pre><code>@Resource
  private PersonRepository personRepository;
  
  @Transactional
  @Override
  public Person create(PersonDTO created) {
      LOGGER.debug("Creating a new person with information: " + created);
  
      Person person = Person.getBuilder(created.getFirstName(), created.getLastName()).build();
  
      personRepository.save(person);
  
      foo();
  
      return null;
  }
  public void foo() {
      throw new RuntimeException();
  }
  </code></pre>
  
  <p>As you can see i'm throwing an execption but persistancy takes place non the less.</p>
  
  <p>Here is my datasource config:</p>
  
  <pre><code>&lt;tx:annotation-driven transaction-manager="transactionManager"  proxy-target-class="true" /&gt;
   &lt;bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"&gt;
      &lt;property name="entityManagerFactory" ref="entityManagerFactory" /&gt;
  &lt;/bean&gt;
  
  &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"&gt;
      &lt;property name="driverClassName" value="com.mysql.jdbc.Driver"/&gt;
      &lt;property name="url" value="jdbc:mysql://localhost:3306/dbb"/&gt;
      &lt;property name="username" value="root" /&gt;
      &lt;property name="password" value="pass" /&gt;
      &lt;property name="initialSize" value="10"/&gt;
      &lt;property name="maxActive" value="100"/&gt;
      &lt;property name="maxIdle" value="15"/&gt; 
      &lt;property name="minIdle" value="10"/&gt; 
      &lt;property name="timeBetweenEvictionRunsMillis" value="10000"/&gt; 
      &lt;property name="minEvictableIdleTimeMillis" value="60000"/&gt; 
      &lt;property name="validationQuery" value="/* ping */ SELECT 1"/&gt;
      &lt;property name="testOnBorrow" value="true"/&gt; 
      &lt;property name="testWhileIdle" value="true"/&gt;           
      &lt;property name="removeAbandoned" value="true"/&gt; 
      &lt;property name="removeAbandonedTimeout" value="300"/&gt; 
  &lt;/bean&gt;
  
    &lt;bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt;
      &lt;property name="persistenceUnitName" value="punit"/&gt;
      &lt;property name="dataSource" ref="dataSource"/&gt;
      &lt;property name="jpaDialect"&gt;
          &lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /&gt;
      &lt;/property&gt;
      &lt;property name="jpaVendorAdapter"&gt;
          &lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"&gt;
              &lt;property name="database" value="MYSQL"/&gt;
              &lt;!-- &lt;property name="databasePlatform" value="${hibernate.dialect}"/&gt; --&gt;
              &lt;property name="showSql" value="false"/&gt;               
              &lt;property name="generateDdl" value="false"/&gt;
              &lt;!--  &lt;property name="hibernate.connection.autocommit" value="false"/&gt; --&gt;
          &lt;/bean&gt;
      &lt;/property&gt;
      &lt;property name="jpaPropertyMap"&gt;
          &lt;map&gt;
              &lt;entry key="hibernate.connection.autocommit" value="false" /&gt;
          &lt;/map&gt;
      &lt;/property&gt;
  &lt;/bean&gt; 
  </code></pre>
  
  <p>Any idea why?</p>
  
  <p>Thanks!</p>