Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- @EnableTransactionManagement
- public class AppConfig {
- @Bean
- public LocalContainerEntityManagerFactoryBean getEntityManagerFactory() {
- LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
- emf.setDataSource(getDataSource());
- emf.setPackagesToScan("jpa.models");
- JpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
- emf.setJpaVendorAdapter(adapter);
- emf.setJpaProperties(getProperties());
- return emf;
- }
- @Bean
- public DataSource getDataSource() {
- DriverManagerDataSource dtSrc = new DriverManagerDataSource();
- dtSrc.setDriverClassName("com.mysql.jdbc.Driver");
- dtSrc.setUrl("jdbc:mysql://localhost:3306/jpa_example");
- dtSrc.setUsername("dbuser1");
- dtSrc.setPassword("dbuser1");
- return dtSrc;
- }
- private Properties getProperties() {
- Properties p = new Properties();
- p.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
- p.setProperty("hibernate.hbm2ddl.auto", "create");
- p.setProperty("hibernate.show_sql", "true");
- return p;
- }
- //auto transaction management
- @Bean
- public PlatformTransactionManager getTransactionManager(EntityManagerFactory emf) {
- JpaTransactionManager manager = new JpaTransactionManager();
- manager.setEntityManagerFactory(emf);
- return manager;
- }
- //auto exception management
- @Bean
- public PersistenceExceptionTranslationPostProcessor getPostProcessor() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
- }
- @Component
- @Transactional
- public class BooksHandler {
- @PersistenceContext
- private EntityManager em;
- public Book createBook(String title, String isbn, int year) {
- Book b = new Book();
- b.setIsbn(isbn);b.setTitle(title);b.setYear(year);
- em.persist(b);
- System.out.println("book created: "+b.getId());
- return b;
- }
- public Book getBook(int id) {
- return em.find(Book.class, id);
- }
- //other CRUD methods
- }
Add Comment
Please, Sign In to add comment