I get errors when saving entities
@Transactional(rollbackOn = {Exception.class})
public void generateReadingForMeter(List meter) {
List readingsToSave = new ArrayList();
for (Meter estateMeter : meter) {
try{
JSONArray jsonArray = meterService.checkMeter(estateMeter.getMeterName());
jsonArray.forEach(item → {
if (item instanceof JSONObject jsonObject) {
try {
BigDecimal meterValue = BigDecimal.valueOf(jsonObject.getDouble(« value »));
ReadingSource emailSource = readingSourceRepository.findByName(« Telegram bot. »);
LOG.info("Source: " + emailSource);
Reading reading = createNewReading(JPA.em().merge(estateMeter), meterValue, emailSource);
readingsToSave.add(reading);
} catch (JSONException e) {
throw new RuntimeException("Error parsing JSON object", e);
}
}
});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
LOG.info("Readings list: {}",readingsToSave);
LOG.info("Reading to save meter: {}",readingsToSave.get(1).getReadingMeter());
readingRepository.saveAll(readingsToSave);
}
private Reading createNewReading(Meter meterId, BigDecimal readingValue, ReadingSource readingSourceId) {
LOG.info(« Merged meter: {} »,meterId);
Reading newReading = new Reading();
newReading.setReading(readingValue);
newReading.setReadingCreatedtime(LocalDateTime.now());
newReading.setReadingDate(LocalDateTime.now());
newReading.setReadingMeter(meterId);
newReading.setReadingSource(readingSourceId);
// entityManager.getTransaction().commit();
// entityManager.flush();
// entityManager.clear();
return newReading;
}
public void saveAll(List readings) {
for (Reading estateReading : readings) {
try {
save(estateReading);
}catch (Exception e){
throw new RuntimeException(« Error saving », e);
}
}
}