java - hibernate加速插入

标签 java mysql spring hibernate

插入数据库需要很长时间,如何加快整个过程?在项目中,我使用的是hibernate

for (int a = 0; a < persons.size(); a++) {    
    Person person = new Person();

    Gender gender = new Gender();
    gender.setName(persons.get(a).getGender());
    gender = genderRepository.save(gender);

    Country country = new Country();
    country.setName(persons.get(a).getCountry());
    country = countryRepository.save(country);

    person.setName(personss.get(a).getFirstName());
    person.setLastName(persons.get(a).getLastName());
    person.setAdditionalInfo(persons.get(a).getIdentifier());
    person.setGender(gender);

    Set<Country> countries = new HashSet();
    countries.add(country);
    person.setCountries(countries);

    personRepository.save(person);
}

最佳答案

意见:

  1. 不要在“for”语句中创建新的 person 对象
  2. 不要在“for”语句中启动新事务

原因:

  1. 在for语句中new对象会造成资源浪费
  2. SQL尝试放在一个stansaction中,减少对数据库的操作

关于java - hibernate加速插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51837446/

相关文章:

mysql - 如何按用户每台设备选择最后一条消息

php - 如何计算列值之和之间的差异?

java - spring中@ModelAttribute、model.addAttribute有什么区别?

java - 使用运行时生成的数据在 deeplearning4j 中训练递归神经网络

Java web应用认证-账户设计

java - 使用 maven 构建跨平台(Linux,Windows)java JNI 应用程序

java - 如何使用 weblogic 和 JPA 在 Spring 中处理事务

java - Java 的 'defer' 是什么

php - 将对象添加到数组 - 覆盖而不是添加

java - 使用 Spring 按条件验证对象字段