2012-04-04 100 views
2

我打算启用hibernate.order_inserts以改善批量插入操作。
正如我所看到的,这是会话工厂级别的属性。不过,我认为为我的应用程序所做的所有插入操作使这样的属性有点冒险。

有没有为单个会话启用hibernate.order_inserts属性的选项?如何为单个会话启用hibernate.order_inserts属性

回答

2

通过休眠源代码,当SessionFactoryConfiguration.buildSessionFactory()内置搜索后,SettingsFactory.buildSettings()将在内部称为解析休眠配置属性到Settings实例。 hibernate.order_inserts将大步进入Settings实例的orderInsertsEnabled属性。

然后将Settings实例传递给SessionFactoryImpl的构造函数,该实现为SessionFactory的实现,并将其分配给其内部的settings properties。这settings property被宣布为final它的值一旦设置就不能改变。

SettingsorderInsertsEnabled属性是通过吸气剂isOrderInsertsEnabled()暴露给客户端。再次搜索代码,确认只有一个地方(ActionQueue.sortActions())来调用此获取该Settings实例正是从SessionFactoryImpl

得到结果,我不认为有任何选项中改变hibernate.order_inserts无论是在会话工厂级别还是会话级别运行。所以你必须创建另一个会话工厂hibernate.order_inserts设置,以实现您的目的。

相关问题