当前位置: 首页 > 面试题库 >

Hibernate关系映射/加速批量插入

汪栋
2023-03-14
问题内容

我有5个MySQL
InnoDB表:Test,InputInvoice,InputLine,OutputInvoice,OutputLine每个表都在Hibernate中映射并起作用。我玩过使用StatelessSession
/ Session和JDBC批处理大小。我删除了任何生成器类,以使MySQL处理id生成-
但它的执行速度仍然很慢。这些表中的每一个都在java类中表示,并相应地在hibernate中进行映射。目前,当需要将数据写出时,我遍历对象并执行一个session.save(Object)session.insert(Object)如果正在使用StatelessSession)。当行数达到最大jdbc批处理大小(50)时,我还会进行刷新和清除(使用Session时)。

  1. 如果将这些放在一个“父”类中来保存对象,然后做一个session.save(master)而不是每个对象,会更快吗?
  2. 如果我将它们放在主/容器类中,我该如何将它们映射到hibernate状态以反映这种关系?容器类实际上不是它自己的表,而是一个全部基于两个索引run_id(int)和line(int)的关系。
  3. 另一个方向是:如何让Hibernate进行多行插入?

问题答案:

对我来说,最终的解决方案是将voetsjoeba的回答作为出发点。我的hibernate配置使用以下选项:

hibernate.order_inserts = true
hibernate.order_updates = true
  • 我从Session改为 StatelessSession

  • 重新排序Java代码以一次处理一个表中的所有元素。因此,所有表x,然后是表y,依此类推。

  • <generator>从每个类中删除了。Java现在创建它并将其分配给对象

  • 创建的逻辑使我能够确定是否仅设置了一个ID,而不是将“空”行写入数据库

  • 最后,我在dynamic-insert 类的hibernate定义中打开了我的类,如下所示:<class name="com.my.class" table="MY_TABLE" dynamic-insert="true">



 类似资料:
  • 问题内容: 我有5个MySQL InnoDB表:每个表都在Hibernate中映射并起作用。我玩过使用StatelessSession / Session和JDBC批处理大小。我删除了任何生成器类,以使MySQL处理id生成- 但它的执行速度仍然很慢。这些表中的每一个都在java类中表示,并相应地在hibernate中进行映射。当前,当需要将数据写出时,我遍历对象并执行一个(如果正在使用State

  • 主要内容:关联映射,反转,级联在前面的学习中,我们所涉及的都是基于单表的操作,但在实际的开发过程中,基本上都是同时对多张表的操作,且这些表都存在一定的关联关系。 Hibernate 是一款基于 ORM 设计思想的框架,它将关系型数据库中的表与我们 Java 实体类进行映射,表中的记录对应实体类的对象,而表中的字段对应着实体类中的属性。Hibernate 进行增删改查等操作时,不再直接操作数据库表,而是对与之对应的实体类对象进行

  • 问题内容: 我有一个抽象的MappedSuperClass,参与者,并通过三种“参与者”进行了扩展。然后,每个人都使用自己的“项目”,也使用抽象的MappedSuperClass。但是,我希望基类了解Projects,以便编写通用代码与参与者进行交互。如何使用Hibernate批注指定此内容?以及如何在ExtendedParticipant和ExtendedProject类中覆盖它? 每个参与者类

  • 如果在中只有一组,这将非常好地工作。ASSESSMENT_COMMENT只有两列: 它将完美地代表一对多的关系。 现在问题来了: 那么,1)这是Hibernate中已知的bug吗?2)有办法解决这个问题吗?我可以强制Hibernate创建两个映射表,每个映射表一个吗?请记住,我不能更改类来引用(业务逻辑需求)

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示:

  • toString()]hibernate:/*插入com.pissolato.api.entitys.sale*/插入到sale(company,created,description,discount,sub_value,type,updated,user,value)值(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)