首页 > 解决方案 > springboot 应用程序:实体未在数据库中创建

问题描述

我使用一个springboot应用程序并尝试在数据库中插入35000条记录

这是主要课程

@SpringBootApplication
@EnableTransactionManagement
public class DemoImmobilierBackApplication implements WebMvcConfigurer {

    public static void main(String[] args) {
        SpringApplication.run(DemoImmobilierBackApplication.class, args);
    }

这里是服务

@Service
public class ReferenceServiceImpl implements ReferenceService {
    
    Logger logger = LoggerFactory.getLogger(ReferenceServiceImpl.class);
    
    @Autowired
    private ReferenceRepository referenceRepository;
    
    
    @Transactional
    public void loadDataBaseCodePostalNomCommune(Map<String,String> tokens) {
        List<CodePostalNomCommune> list = new ArrayList<CodePostalNomCommune>();
        Iterator it = tokens.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pair = (Map.Entry)it.next();
            list.add(new CodePostalNomCommune((String)pair.getKey(), (String)pair.getValue()));
        }
        referenceRepository.persistCodePostalNomCommune(list);
    }
}

这是存储库

@Repository
public interface ReferenceRepository {
    
    void persistCodePostalNomCommune(List<CodePostalNomCommune> list);

}
and 

public class ReferenceRepositoryImpl implements ReferenceRepository {
    
    Logger logger = LoggerFactory.getLogger(ReferenceRepositoryImpl.class);

    @PersistenceContext
    private EntityManager em;

    
    @Override
    @Transactional
    public void persistCodePostalNomCommune(List<CodePostalNomCommune> list) {

        logger.info("List<CodePostalNomCommune> SIZE="+list.size());
        int i = 0;
        for (CodePostalNomCommune codePostalNomCommune : list) {
            em.persist(codePostalNomCommune);
            i++;
            if (i%20 == 0 ) {
                em.flush();
                em.clear();

            }
        } 
    }
}

但是在mysql数据库中没有创建数据

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Sed 非风险。Suspendisse lectus tortor、dignissim sat amet、adipiscing nec、ultricies sed、dolor。Cras elementum ultrices 直径。Maecenas ligula massa, varius a, semper congue, euismod non, mi。Proin porttitor,orci nec nonummy molestie,enim est eleifend mi,non terminum nisl sat amet erat。Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim。Pellentesque congue。Ut in risus volutpat libero pharetra tempor。Cras vestibulum bibendum augue。Praesent gestas leo in pede。Praesent blandit odio eu enim。Pellentesque sed dui ut augue blandit sodales。Faucibus orci luctus et ultrices posuere cubilia Curae 的前庭前庭;Aliquam 笔尖。Mauris ac mauris sed pede pellentesque 发酵。Maecenas adipiscing ante non diam sodales hendrerit。

标签: spring-bootjpa

解决方案


我找到了解决方案。数据源配置错误。在 main 方法的类中,我添加了以下内容

@Bean
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();


dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("password");
dataSource.setUrl(
  "jdbc:mysql://localhost:3306/testdb?createDatabaseIfNotExist=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"); 

return dataSource;

}


推荐阅读