我在我的jpa應用程序中使用eclipselink和postgresql。將一個新實體添加到ManyToOne關聯需要大量的CPU電源
我有3個鏈接如下的表:將@OneToMany記錄到ArchiveMediasRecords,AchiveMedia @OneToMany到ArchiveMediasRecords以及ArchiveMediasRecords與@ManyToOne記錄和AchiveMedia。
ArchiveMediasRecords是一個爲Record和AchiveMedia之間的關聯提供屬性信息的表。
我的問題是,我插入一個記錄每100毫秒,插入完成使用10線程池。
我做這樣的事情:
創建新的記錄
創建新的EntityManager(每線程執行一個新的EM)
創建一個事務,並啓動它
對於每個ArchiveMedia宣佈,執行ASSOCATION通過ArchiveMediasRecords記錄
堅持記錄(級聯也宣佈,使其更容易)
提交事務
的databa se已更新,那裏沒有問題。
問題是,記錄數可能相當大(> 400000),但ArchiveMedia不是(< 20)。
當我將記錄添加到archivemedia時,在ArchiveMedia中的@OneToMany關聯的IndirectList上添加的方法花費了大量的時間和大量的CPU功耗。
有沒有辦法減少大XXXToMany簡單的關聯過程?