ما هو الـ java hibernate وكيف نستفيد منه، لماذا نستعمله وماهي المشاريع التي يستخدم فيها