0

在 Entity Framework 中有一个名为AutoDetectChangesEnabled的选项,它在执行批量操作时显着提高了性能。

Hibernate 中是否有任何等价物,可以在选择/插入许多记录到数据库时提高性能?或者问题应该是,真的需要这样吗?

4

1 回答 1

1

有很多选择:

  • Session.setDefaultReadOnly()- 看起来直接相当于AutoDetectChangesEnabled. 但是,它只会禁用更改检测,但会启用会话缓存,因为其他功能需要它。因此,它只影响性能,而不影响内存消耗。

  • StatelessSession- 没有会话缓存(根本不保留对实体的引用),因此缺少许多常规Session功能

  • 解决此问题的另一种常见方法是在处理期间(或手动处理单个实体clear())定期(例如,在每 100 个实体之后)会话。evict()这种方法结合了以前选项的优点,因为它Session在不再需要实体时保留了正常的语义

于 2013-09-08T22:38:20.347 回答