谢谢@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 keysadapter.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect"); return adapter; } @Bean public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { return new JpaTransactionManager(entityManagerFactory); } }


