Programmatic transaction demarcation

xml 代码
  1. <beans>  
  2.    ...   
  3.   
  4.    <bean id="myTxManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">  
  5.      <property name="sessionFactory" ref="mySessionFactory"/>  
  6.    </bean>  
  7.   
  8.    <bean id="myProductService" class="product.ProductServiceImpl">  
  9.      <property name="transactionManager" ref="myTxManager"/>  
  10.      <property name="productDao" ref="myProductDao"/>  
  11.    </bean>  
  12.   
  13. </beans>  

 

java 代码
  1. public class ProductServiceImpl implements ProductService {   
  2.   
  3.      private PlatformTransactionManager transactionManager;   
  4.      private ProductDao productDao;   
  5.   
  6.      public void setTransactionManager(PlatformTransactionManager transactionManager) {   
  7.          this.transactionManager = transactionManager;   
  8.      }   
  9.   
  10.      public void setProductDao(ProductDao productDao) {   
  11.          this.productDao = productDao;   
  12.      }   
  13.   
  14.      public void increasePriceOfAllProductsInCategory(final String category) {   
  15.          TransactionTemplate transactionTemplate = new TransactionTemplate(this.transactionManager);   
  16.          transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);   
  17.          transactionTemplate.execute(   
  18.              new TransactionCallbackWithoutResult() {   
  19.                  public void doInTransactionWithoutResult(TransactionStatus status) {   
  20.                      List productsToChange = productDAO.loadProductsByCategory(category);   
  21.                      ...   
  22.                  }   
  23.              }   
  24.          );   
  25.      }   
  26. }   

你可能感兴趣的:(bean,xml,Hibernate,orm)