Hibernate documentation says second level cache should be set to false for batch updates is this true , if so why ? both are true is any problem ? org.hibernate.cache.ehcache.EhCacheRegionFactory true 50
Asked
Active
Viewed 485 times
2
-
How to temporarily disable second level cache ? – Balaji Nov 17 '14 at 15:29
1 Answers
2
The second level cache keeps a reference to all objects which are used in the current transaction. Batch updates are mostly used to update many objects (> 10'000). That many objects need a lot of memory but for little gain: You probably don't need any of them again, soon (or rather, if you update a million objects, you don't really know which one of them you'll need next).
So putting all these objects in the second level cache poses two problems: 1. It wastes memory and 2. it can allocate so much memory that you run out of it.
To disable the cache for the current session, use session.setCacheMode(CacheMode.IGNORE)
. Source: https://forum.hibernate.org/viewtopic.php?f=1&t=964775

Aaron Digulla
- 321,842
- 108
- 597
- 820
-
-
Try `session.setCacheMode(CacheMode.IGNORE)`. Source: https://forum.hibernate.org/viewtopic.php?f=1&t=964775 – Aaron Digulla Nov 17 '14 at 15:29