Greetings!
In researching ORM Solutions, I've come across Hibernate and have been researching it. Since installing it, I've developed a few tests to play around with it. However, I have some questions that so far have gone unanswered by the FAQ and would be extremely time intensive to implement for a simple test.
If anyone has experience in any of the following fields, I invite you to provide your experiences and appreciate any insight that you may provide.
1. With the cache methods available, is there a cache overflow to disk available should the memory cache allotment peak?
2. It appears that SQL queries will not have access to cache unless a flush is explicitly called before the SQL is executed. Do the SQL queries generate any sort of cache entries, which subsequent SQL queries may have access to?
3. The FAQ indicates that Hibernate is a High Performance ORM, designed around enabling cluster capability and speed. Does it support any bulk loading of data in an efficient method? For example, if a database system goes offline and the entries are cached; once the databases are available again will Hibernate be able to successfully and quickly load all cached entries into the databases?
4. "Debuggability". There is an option which enables you to view the SQL being generated by Hibernate. However, does it provide any sort of explanation plans as to why it may be generating the query it does? What is the suggested course of action if the query it generates via HQL statements is not the desired SQL query?
5. Stored Procedures. Previously, I read that a function must return a result set and that the first parameter of a procedure must be an OUT that returns a result set. By anyone's experience, is this true when using an Oracle database?
6. Has anyone had experiences where scalability has come into play? What are your experiences around needing to expand?
7. Change detection with cache. The FAQ briefly outlines what the cache methods are. Does anyone know if there is any sort of change detection available with the cache and stored values in the database? How does this pan out in a clustered environment?
8. Does the cache system support a time based expiration, so as to perform a synchronized flush/update on all cache systems?
And last, but not least 9: If databases become unavailable, what sort of survivability could be expected with Hibernate by means of it's caching system?
Again, I appreciate any insight, even if you may have partial information regarding a small section of these questions we have.
Thanks in advance,
Michael Martinek
|