首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate批量插入oracle 10g

Hibernate批量插入oracle 10g
EN

Stack Overflow用户
提问于 2012-11-04 02:10:30
回答 2查看 1K关注 0票数 1

我想使用HibernateTemplate执行hibernate批插入,但是我找不到包含这个类的正确jar。我知道它应该出现在spring.jar中,但无法找到下载spring.jar的位置。为了得到这个jar,我也尝试了下载整个spring框架,但不幸的是,在下载的包中没有找到任何类似spring.jar的东西。可能名字改了,你能告诉我在哪个jar里可以找到这个HibernateTemplate类吗?

另外,我们是应该在hibernate中使用HibernateTemplate类进行批量插入,还是在hibernate中使用其他更好的方法来进行批量插入?

致以敬意,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-04 21:03:39

不建议使用Hibernate进行批量处理。除非您已经有一个使用Hibernate构建的业务层,并且您希望重用一些代码,否则您应该在普通的旧式JDBC中进行批处理,可能由Spring Batch之类的框架管理。

如果你想使用Hibernate,那么你应该使用StatelessSession

不需要任何HibernateTemplate,因为会话已经为您提供了所需的一切。

编辑:您可以处理事务:

代码语言:javascript
复制
Session session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
// DO SOMETHING
tx.commit();
session.close();

顺便说一句,如果您为10个项目创建了一个事务,那么我猜您希望将您的处理拆分为10个插入的多个事务。真的需要事务吗?因为不管怎样,一个事务可能会失败,而其他事务不会失败,这就给您留下了一些插入的实体和一些没有插入的实体。

如果您希望批处理的原子性(全部已插入,或未插入),则必须为所有元素运行事务,而不仅仅是其中的10个。但要小心不要锁定你的数据库...我不认为对批处理使用大的长时间运行的事务是一个好主意。相反,您可能应该自己补偿插入失败。

票数 1
EN

Stack Overflow用户

发布于 2012-11-04 02:58:03

HibernateTemplate类是spring-framework-3.1.3.RELEASE.zip中包含的org.springframework.orm-3.1.3.RELEASE.jar的一部分

如果您已经在项目中使用了spring框架,那么没有理由不使用HibernateTemplate进行批量更新。HibernateTemplate的优点是您不必关心Hibernate会话

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13212030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档