Connection connection = DriverManager.getConnection(url, username, password); try { connection.setAutoCommit(false); // ... connection.commit(); } catch (SQLException e) { connection.rollback(); } finally { connection.close(); } EntityManagerFactory emf = Persistence.createEntityManagerFactory("my-persistence-unit"); EntityManager em = emf.createEntityManager(); try { UserTransaction utx = (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction"); utx.begin(); // ... utx.commit(); } catch (Exception e) { utx.rollback(); } finally { em.close(); emf.close(); } @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean public Advisor transactionAdvisor(PlatformTransactionManager transactionManager) { DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(); advisor.setPointcut(new AnnotationMatchingPointcut(Transactional.class, true)); advisor.setAdvice(new TransactionInterceptor(transactionManager, new AnnotationTransactionAttributeSource())); return advisor; } @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Transactional public @interface Transactional { } @Service public class UserService { @Transactional public void addUser(User user) { } }


上一篇:
下一篇:
切换中文