Я использую eclipselink и postgresql в приложении jpa.Добавление нового объекта в ассоциацию ManyToOne занимает много мощности процессора
У меня есть 3 таблицы, которые связаны следующим образом: Запись @OneToMany в ArchiveMediasRecords, AchiveMedia @OneToMany для ArchiveMediasRecords и ArchiveMediasRecords с @ManyToOne как для записи, так и для AchiveMedia.
ArchiveMediasRecords - это таблица, которая предоставляет информацию об атрибутах для связи между Record и AchiveMedia.
Моя проблема заключается в том, что я вставляю запись каждые 100 мс, а вставка выполняется с использованием пула из 10 потоков.
Я делаю что-то вроде этого:
Создать новую запись
Создать новую EntityManager (один новый ет за выполнение потоков)
Создать транзакцию, и начать его
Для каждого ArchiveMedia заявил, сделать Assocation с запись через ArchiveMediasRecords
Упорство запись (каскад хорошо объявлен, чтобы сделать его проще)
зафиксировать транзакцию
databa se обновляется, проблем нет.
Проблема заключается в том, что количество записей может быть довольно большим (> 400000), но ArchiveMedia не является (< 20).
Когда я добавляю запись в архив, метод add в IndirectList ассоциации @OneToMany в ArchiveMedia занимает много времени и много мощности процессора.
Есть ли способ уменьшить простой процесс ассоциации на большом XXXToMany?