Hibernate یک فریمورک نگاشت شیء -رابطهای است که ارتباط بهتر بین زبان برنامهنویسی جاوا و سیستمهای مدیریت پایگاه داده رابطهای (RDBMS) را ارائه میکند.
هنگامی که با زبانهای برنامهنویسی شیءگرایی مانند جاوا کار میکنیم، با مشکلی به نام عدم مطابقت امپدانس شیء-رابطهای (که در برخی موارد پارادایم عدم مطابقت نیز نامیده میشود) مواجه میشویم. زبانهای شیگرا و RDBMSها دادهها را به طرز متفاوتی مدیریت میکنند که این امر میتواند منجر به مسائل عدم تطبیق شود. با این که زبانهای شیءگرا دادهها را به شکل سلسله مراتبی از اشیا سازماندهی میکنند؛ اما پایگاههای داده رابطهای دادهها را در قالب جدول ارائه میکنند. برای نمونه یکی از مسائل عدم مطابقت هنگامی روی میدهد که مدل شیء کلاسهایی بیش از تعداد جدولهای موجود در پایگاههای داده رابطهای داشته باشد.
Hibernate فریمورکی ارائه کرده است که بر مسائل عدم مطابقت جاوا فائق میآید. منظور از ارائه Hibernate دستیابی به ثبات (Persistence) بوده است، یعنی دادههایی که توسط اپلیکیشن تولید یا استفاده میشوند باید عمری بلندتر از پردازشی که آنها را تولید کرده است داشته باشند. با این که Hibernate برای پایگاههای داده رابطهای ساخته شده است؛ اما نسخه جدیدتر آن از انبارهای دادهای NoSQL نیز پشتیبانی میکند. همچنین ابزارهای توسعهای خوبی مانند ویرایشگر نگاشت، کنسول Hibernate و یک ابزار جالب مهندسی معکوس پایگاه داده دارد.