Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Default cache used by Hibernate?

What is the name of the default cache used by Hibernate? Is there a default cache even, or do you have to add a cache provider in order to take advantage of a cache?

I thought it was the EHCache but I think this has to be configured...it is not "there" by default...

like image 966
rrazd Avatar asked Sep 08 '11 14:09

rrazd


2 Answers

Hibernate already provides a caching mechanisms called 1st level cache by the persistent context . It is in the Session scoped , enabled by default and cannot be turned off.

The cache provider such as EHCache provides another caching mechanisms called 2nd level cache . It is in the SessionFactory scoped . No 2nd level cache is enable by default and you have to configure it .

See this for how to enable EHCache in hibernate.

like image 170
Ken Chan Avatar answered Oct 11 '22 21:10

Ken Chan


No second level cache is enabled in hibernate by default.

You can always choose one of these cache providers according to your needs:

  • EHCache
  • OSCache
  • SwarmCache
  • Jboss TreeCache
  • JBoss Cache 2

You can always refer to hibernate documentation to see how to register it.

like image 42
danny.lesnik Avatar answered Oct 11 '22 23:10

danny.lesnik