簡體   English   中英

Hibernate批量插入Oracle 10g

[英]Hibernate batch insert oracle 10g

我想使用HibernateTemplate執行休眠批處理插入,但是找不到包含此類的正確jar。 我知道它應該出現在spring.jar中,但是找不到在哪里下載spring.jar。 為了獲得這個jar,我也嘗試下載整個spring框架,但是不幸的是,在下載的包中沒有找到spring.jar之類的東西。 可能是名稱更改了,能否讓我知道我可以在哪個jar中找到此HibernateTemplate類?

另外,我們是否應該在休眠中使用HibernateTemplate類進行批量插入,還是在休眠中使用其他更好的替代方法呢?

問候,

不建議使用Hibernate進行批處理。 除非您已經具有使用Hibernate構建的業務層,並且想要重用一些代碼,否則應該使用純舊的JDBC(可能由諸如Spring Batch之類的框架管理)進行批處理。

如果要使用Hibernate,則應使用StatelessSession

不需要任何HibernateTemplate因為會話已經為您提供了所需的一切。


編輯:您可以處理交易:

Session session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
// DO SOMETHING
tx.commit();
session.close();

順便說一句,如果您創建一個包含10個項目的交易,那么我想您想將處理分為10個插入項的多個交易。 真的需要交易嗎? 因為無論如何,一個事務可能會失敗,而其他事務卻不會失敗,這會給您留下一些插入的實體,而有些則不會。

如果要自動處理批處理(全部插入或未插入),則必須對所有元素(不僅是10個)運行事務。 但是請注意不要鎖定數據庫……我認為對批處理使用長時間運行的大型事務不是一個好主意。 相反,您可能應該自行彌補插入失敗。

HibernateTemplate類是org.springframework.orm-3.1.3.RELEASE.jar一部分,該文件包含在spring-framework-3.1.3.RELEASE.zip中

如果您已經在項目中使用spring框架,則沒有理由不應該使用HibernateTemplate進行批處理更新。 HibernateTemplate的優點是您不必關心Hibernate會話

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM