# application.properties spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=username spring.datasource.password=password @Configuration @EnableTransactionManagement public class TransactionConfig { @Autowired private DataSource dataSource; @Bean public PlatformTransactionManager transactionManager() { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setDataSource(dataSource); transactionManager.setDefaultTimeout(30); return transactionManager; } @Bean public JpaVendorAdapter jpaVendorAdapter() { HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); adapter.setShowSql(true); adapter.setDatabase(Database.MYSQL); adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5Dialect"); return adapter; } @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource); em.setPackagesToScan("com.example.model"); em.setPersistenceUnitName("myEntityManager"); em.setJpaVendorAdapter(jpaVendorAdapter()); em.setJpaProperties(additionalProperties()); return em; } private Properties additionalProperties() { Properties properties = new Properties(); properties.setProperty("hibernate.hbm2ddl.auto", "update"); properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect"); properties.setProperty("hibernate.show_sql", "true"); return properties; } } @Service public class UserService { @Autowired private UserRepository userRepository; @Transactional(isolation = Isolation.READ_COMMITTED) public void updateUser(String userId, String newName) { User user = userRepository.findById(userId); user.setName(newName); userRepository.save(user); } }


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