谢谢@mechkov的时间和帮助,我的问题通过更改配置文件得以解决,因此我使用了带有注释的配置类,其工作原理如此之好,我仍然不知道问题出在哪里
@Configuration
@ComponentScan(basePackages = "your package")
@EnableTransactionManagement
public class DatabaseConfig {
protected static final String PROPERTY_NAME_DATABASE_DRIVER = "com.MysqL.jdbc.Driver";
protected static final String PROPERTY_NAME_DATABASE_PASSWORD = "password";
protected static final String PROPERTY_NAME_DATABASE_URL = "jdbc:MysqL://localhost:3306/databasename";
protected static final String PROPERTY_NAME_DATABASE_USERNAME = "login";
private static final String PROPERTY_PACKAGES_TO_SCAN = "where your models are";
@Bean
public LocalContainerEntityManagerfactorybean entityManagerfactorybean(DataSource dataSource, JpaVendorAdapter jpaVendorAdapter){
LocalContainerEntityManagerfactorybean entityManagerfactorybean = new LocalContainerEntityManagerfactorybean();
entityManagerfactorybean.setDataSource(dataSource);
entityManagerfactorybean.setJpaVendorAdapter(jpaVendorAdapter);
entityManagerfactorybean.setPackagesToScan(PROPERTY_PACKAGES_TO_SCAN);
return entityManagerfactorybean;
}
@Bean
public BasicDataSource dataSource(){
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(PROPERTY_NAME_DATABASE_DRIVER);
ds.setUrl(PROPERTY_NAME_DATABASE_URL);
ds.setUsername(PROPERTY_NAME_DATABASE_USERNAME);
ds.setPassword(PROPERTY_NAME_DATABASE_PASSWORD);
ds.setInitialSize(5);
return ds;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter(){
HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
adapter.setDatabase(Database.MysqL);
adapter.setShowsql(true);
adapter.setGenerateDdl(true);
//I'm using MysqL5InnoDBDialect to make my tables support foreign keys
adapter.setDatabasePlatform("org.hibernate.dialect.MysqL5InnoDBDialect");
return adapter;
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}