EntityManager persist не сохраняет никаких данныхJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 EntityManager persist не сохраняет никаких данных

Сообщение Anonymous »

Я создаю информационную панель команды с совпадениями из CSV-файла. Я создаю две сущности — матч и команду. Я использую Spring Batch для загрузки совпадений в postgre, и он загружается нормально. Я могу проверить завершение загрузки данных, запросив базу данных Postgre. После завершения пакетного задания я хотел бы выполнить несколько запросов для агрегирования данных, для которых я использую EntityManager. Когда я сохраняю EntityManager, я не вижу никаких данных в базе данных и не вижу никаких ошибок. Я попытался вывести данные, хранящиеся в hashMap, и вижу данные, которые я хотел бы сохранить в таблице Team базы данных. Что может быть не так в моей настойчивости?
import com.project.dashboard.model.Team;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobExecutionListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;

@Component
public class JobCompletionNotificationListener implements JobExecutionListener {

private static final Logger log = LoggerFactory.getLogger(JobCompletionNotificationListener.class);

@PersistenceContext
private final EntityManager em;

@Autowired
public JobCompletionNotificationListener(EntityManager em) {
this.em = em;
}

@Override
@Transactional(propagation = Propagation.REQUIRED)
public void afterJob(JobExecution jobExecution) {
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
log.info("!!! JOB FINISHED! Time to verify the results");

Map teamData = new HashMap();

em.createQuery("select m.team1, count(*) from Match m group by m.team1", Object[].class)
.getResultList()
.stream()
.map(e -> new Team((String) e[0], (long) e[1]))
.forEach(team -> teamData.put(team.getTeamName(), team));

em.createQuery("select m.team2, count(*) from Match m group by m.team2", Object[].class)
.getResultList()
.forEach(e -> {
Team team = teamData.get((String) e[0]);
team.setTotalMatches(team.getTotalMatches() + (long) e[1]);
});

em.createQuery("select m.winner, count(*) from Match m group by m.winner", Object[].class)
.getResultList()
.forEach(e -> {
Team team = teamData.get((String) e[0]);
if(team!=null)
{
team.setTotalWins((team.getTotalWins() + (long) e[1]));
}
});

teamData.values().forEach(em::persist);
teamData.values().forEach(System.out::println);
}

}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... t-any-data
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • EntityManager persist не сохраняет никаких данных
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Ошибка дублирующейся записи JPA в EntityManager.remove, а затем в EntityManager.persist
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • EntityManager.persist() не работает с @Transactional
    Anonymous » » в форуме JAVA
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • EntityManager.persist() не работает с @Transactional
    Гость » » в форуме JAVA
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость
  • EntityManager.persist(объект) NullPointerException
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»