您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

没有可用于当前线程的实际事务的EntityManager-无法可靠地处理“持久”调用

没有可用于当前线程的实际事务的EntityManager-无法可靠地处理“持久”调用

谢谢@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);
        }


    }
其他 2022/1/1 18:15:28 有497人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶