В моем приложении мне нужно моделировать различные ситуации для анализа.Таким образом, вставьте (очень) большое количество строк в базу данных.(Мы говорим об очень большом количестве данных ... несколько миллиардов)
Модель
@Entity
public class Case extends Model {
public String url;
}
Работа
public class Simulator extends Job {
public void doJob() {
for (int i = 0; i !=) {
// Somestuff
new Case(someString).save();
}
}
}
Через полчаса в базе данных еще ничего нет .Но следы отладки показывают, что Play вставляет некоторые вещи.Я подозреваю, что это какой-то кеш.
Я пробовал обо всем:
Model.em().flush();
Ничего не меняется.
Model.em().getTransaction().commit();
throws TransactionRequiredException произошло: транзакция не выполняется
Model.em().setFlushMode(FlushModeType.COMMIT);
Model.em().setFlushMode(FlushModeType.AUTO);
Ничего не меняется.
Я также пробовал @ NoTransaction аннотации везде:
- Класс и функции в контроллере
- Класс Case
- Превосходящий метод сохранения в Model
- Класс и функции моей работы
Становится довольно отчаянным.Любые советы приветствуются.
РЕДАКТИРОВАТЬ: После небольшого исследования, первая строка появляется в базе данных.Соответствующий идентификатор составляет около 550.000.Это означает, что около полумиллиона строк находятся где-то между моим приложением и базой данных.