Reputation: 783
I use a springboot application and try to insert 35000 records in the database
Here is the main class
@SpringBootApplication
@EnableTransactionManagement
public class DemoImmobilierBackApplication implements WebMvcConfigurer {
public static void main(String[] args) {
SpringApplication.run(DemoImmobilierBackApplication.class, args);
}
Here is the service
@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);
}
}
here is the repository
@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();
}
}
}
}
But no data is created in mysql database
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit 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 egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.
Upvotes: 0
Views: 83
Reputation: 783
I found the solution. The datasource was badly configured. In the class of main method, I added the following
@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;
}
Upvotes: 1