JPA вставляет оптимизацию - PullRequest
1 голос
/ 15 января 2020

У меня есть jpa-код, который генерирует игроков (10000) и для каждого игрока на 100 игр и вставляет их в дБ, но это так медленно, я пытался использовать btch, где я установил размер btch, а затем использовал грипп sh / чистые методы, но это не сильно изменилось


  List<Player> players = new ArrayList<>();
  Random rd = new Random();

  @Override
  public void createMassData() {
    EntityManager em = lab02EntityManager.getEntityManager();
    EntityTransaction tx = em.getTransaction();
    List<Category> allCategories =
        lab02EntityManager
            .getEntityManager()
            .createQuery("select c from Category c")
            .getResultList();
    players = createPlayers();
    tx.begin();
    int trans = 1000;
    int index=0;
    for (Player player : players) {
      em.persist(player);
      index++;
      for (int i = 0; i < 10; i++) {
        em.persist(playGame(player, allCategories));
        index++; }
        if (index > trans){
          index=0;
          em.flush();
          em.clear();
        }
      }
     System.out.println("created ..");
    tx.commit();
  }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...