我正在回到Java世界,我正在尝试使用JPA,Hibernate和PostgreSQL配置一个新的Spring Web应用程序.
我发现了许多带有各种XML配置文件的旧示例,我想知道是否有一种首选的新方法来执行此配置而不依赖于XML文件创作.
我需要配置的一些东西是hibernate sql方言,驱动程序等.
将以下片段放入用@Configuration
and 注释的类中@EnableTransactionManagement
Hibernate/JPA(编辑packagesToScan String):
@Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); em.setPackagesToScan(new String[] { "com.XY.model" }); JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); em.setJpaVendorAdapter(vendorAdapter); em.setJpaProperties(additionalProperties()); return em; } Properties additionalProperties() { Properties properties = new Properties(); properties.setProperty("hibernate.hbm2ddl.auto", "update"); properties.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQL9Dialect"); properties.setProperty("hibernate.show_sql", "true"); return properties; }
DataSource(编辑用户名,密码和主机地址):
@Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("org.postgresql.Driver"); dataSource.setUrl("jdbc:postgresql://localhost:port/DB_NAME"); dataSource.setUsername("root"); dataSource.setPassword(""); return dataSource; }
交易经理:
@Bean public PlatformTransactionManager transactionManager(EntityManagerFactory emf) { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setEntityManagerFactory(emf); return transactionManager; }