Java Hibernate批量插入oracle 10g

Java Hibernate批量插入oracle 10g,java,hibernate,Java,Hibernate,我想使用HibernateTemplate执行hibernate批插入,但找不到包含此类的正确jar。我知道它应该出现在spring.jar中,但无法找到在哪里下载spring.jar。为了得到这个jar,我还尝试下载整个spring框架,但不幸的是在下载的包中没有找到类似spring.jar的东西。可能名称已更改,您能告诉我在哪个jar中可以找到这个HibernateTemplate类吗 另外,我们应该在hibernate中使用HibernateTemplate类进行批插入,还是在hibern

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

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


关于,HibernateTemplate类是org.springframework.orm-3.1.3.RELEASE.jar的一部分,它包含在


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

HibernateTemplate类是包含在


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

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

如果要使用Hibernate,那么应该使用
无状态会话

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


编辑: 您可以处理以下事务:

Session session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
// DO SOMETHING
tx.commit();
session.close();
顺便说一下,如果您为10个项目创建一个事务,那么我猜您希望将您的治疗拆分为10个插入的多个事务。真的需要交易吗?因为无论如何,一个事务可能会失败,而其他事务不会失败,这就留下了一些插入的实体,而有些则没有


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

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

如果要使用Hibernate,那么应该使用
无状态会话

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


编辑: 您可以处理以下事务:

Session session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
// DO SOMETHING
tx.commit();
session.close();
顺便说一下,如果您为10个项目创建一个事务,那么我猜您希望将您的治疗拆分为10个插入的多个事务。真的需要交易吗?因为无论如何,一个事务可能会失败,而其他事务不会失败,这就留下了一些插入的实体,而有些则没有


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

不,使用spring框架不是我们项目的选项,只是为了实现我们计划使用的批量插入。因此,我问除了spring framework之外,是否还有其他的hibernate批处理插入方法?@user182944 hibernate批处理独立于SpringFramework。HibernateTemplate只是简化数据访问代码的助手。我只回答了你的问题。Hibernate文档中有一章介绍批量更新。例子。谷歌是你的朋友。我尝试使用HibernateTemplate,但遇到了一个困难。假设有10条记录要插入,第五条记录失败,那么前四条记录将被执行,一旦第五条记录失败,剩下的插入查询将根本不被执行。在这里我需要知道两件事:1)是否有一些设置允许插入所有记录,如果任何一条失败,那么十条记录中的任何一条都不应该插入?2) 即使第五条记录失败,我也希望继续插入剩余的记录。如何实现这些目标?请help@andih:HibernateTemplate本身的文档不鼓励使用此类,并建议直接使用本机HibernateAPI。因此,有一个很好的理由不使用HibernateTemplate:它不会增加太多价值,对于Hibernate 4甚至不再存在。@JBNizet当您将Springframework Transactionmanagement与HibernateTransactionManager以外的另一个TransactionManager一起使用时,它有一些优势。我认为批量更新没有好处,但如果项目中已经使用了springframework,也没有理由不使用它。不,使用spring framework不是我们项目的选项,只是为了实现我们计划使用的批量插入。因此,我问除了spring framework之外,是否还有其他的hibernate批处理插入方法?@user182944 hibernate批处理独立于SpringFramework。HibernateTemplate只是简化数据访问代码的助手。我只回答了你的问题。有一章是关于批量更新的