我有父/子單向關係。當我審視我看到有每個子行單獨插入查詢日誌,相當於我們說:在JPA中插入多行的最有效方法
insert into childTable(col1, col2) values(val1, val2);
insert into childTable(col1, col2) values(val3, val4);
那豈不是更有效地插入一個查詢的所有行?一些沿線:
insert into childTable(col1, col2) values(val1, val2), (val3, val4)
有沒有辦法強制JPA生成多行插入,而不是單行插入?
編輯:我目前正在使用級聯插入,所以我插入父級,並自動生成插入兒童。我寧願繼續使用該方法,而不是讓我們手動創建一個巨大的SQL查詢,因爲我認爲級聯插入可以產生更清晰的代碼。
我已經定期刷新會話以控制L1緩存的大小,因此內存不足並不是問題。
這是非常有幫助的。我非常肯定多行插入並不會更好,但我想通過遍歷底層B樹只可以得到一些改進。我使用自動增量主鍵,但會考慮使用序列。 – ventsyv
@ventsyv&Rob我知道我遲到討論,但檢查[this](http://stackoverflow.com/a/1793209/1398531)out –
@AbhishekBhatia你鏈接到的問題是談論多值插入vs 。單獨的單值插入。這個問題是在支持批量插入的休眠環境中。該批處理將向服務器的一次往返中插入多行,併爲所有單獨的插入重新使用解析的語句。如果這種區分不清楚,我建議你提出一個新問題:引用這兩個問題,並問爲什麼答案看起來矛盾。 – Rob