hibernate pros cons