هایبرنیت (جاوا)
هایبرنیت یک کتابخانه نگاشت شی-رابطه ای (object-relational mapping) برای زبان جاوا است که چارچوبی را برای نگاشت یک شی به یک پایگاه داده رابطه‌ای فراهم می‌آورد.
هایبرنیت نرم‌افزاری آزاد است که تحت مجوز GNU Lesser General Public توزیع می‌شود.
کاربرد اصلی هایبرنیت نگاشت یک کلاس جاوا به یک جدول در پایگاه داده است. هایبرنیت همچنین ابزاری را برای بازیابی داده‌ها فراهم می‌آورد. هایبرنیت کمک می‌کند یک برنامه‌نویس بدون استفاده مستقیم از دستورات مربوط به پایگاه داده با آن رابطه برقرار و شی‌ها را بازیابی، ذخیره یا به روزرسانی کند.
هایبرنیت به هیچ وجه جایگزین رابط پایگاه داده جاوا (JDBC) نمی‌شود بلکه یک لایه بالاتر از و مبتنی بر ان است در واقع هایبرنیت رابطی است که به برنامه نویسان کمک می‌کند، بدون درگیر شدن با جزئیات یک پایگاه داده، تمام اعمال مربوط به ذخیره و بازیابی اشیا را مستقل از نوع پایگاه داده انجام دهند.
هایبرنیت ابزار ذخیره اشیا جاوا را به‌طور شفاف فراهم آورده است. روابط بین اشیا از هر نوعی از جمله یک به یک و چند به چند هم توسط هایبرنیت پشتیبانی می‌شود. هایبرنیت قابلیت ذخیره و بازیابی مجموعه‌ها و گروه‌های داده در جاوا که معمولاً در Set یا List ذخیره می‌شود، را نیز دارد. هایبرنیت قابلیت بارگیری دیرهنگام مجموعه‌های مرتبط با یک شی خاص را دارد. این، رفتار پیش‌فرض در هایبرنیت ۳ است.
نگاشت کلاس‌های جاوا به جدولهای پایگاه داده به کمک یک یا چند فایل پیکره بندی با فرمت XML یا از طریق حاشیه نویسی جاوا انجام می‌شود. این فایل‌ها مشخص می‌کند هر عضو یک کلاس چگونه در جدول مربوط ذخیره شود.
علاوه بر این فایل‌ها، برای پیکره بندی خود هایبرنیت نیاز به یک فایل پیکره بندی اصلی است. برخی از متغیرهایی که می‌توان در این فایل پیکره بندی (با نام پیش‌فرض hibernate.cfg.xml) مشخص کرد عبارتند از:
امکان ترکیب همه اطلاعات مربوط به نگاشت کلاس‌ها و اطلاعات پیکره بندی هایبرنیت در یک فایل نیز وجود دارد.SessionFactory factory = new Configuration().configure().buildSessionFactory(); //or SessionFactory factory = new Configuration().configure(“hibernate.cfg.xml”).buildSessionFactory();
برای تولید Session از این SessionFactory: Session session=factory.openSession();
هایبرنیت قابلیت اجرای دستورات Sql را داراست با این حال برای راحتی بیشتر یک زبان شبیه Sql را با نام HQL پشتیبانی می‌کند. برای مثال دستور codice_1 تمام اشیا موجود در جدول مرتبط با کلاس codice_2 در برنامه جاوا را برمی‌گرداند. معادل Sql این دستور codice_3 است. برای اجرای این دستور در یک برنامه در محیط جاوا استانداد کد زیر اجرا می‌شود:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session=sessionFactory.openSession(); session.beginTransaction(); Query query = session.createQuery("from Product”) List results = query.list(); session.commitTransaction(); هایبرنیت را هم در برنامه‌های استاندارد جاوا (Java SE) و هم در برنامه‌های سازمانی جاوا (Java EE) می‌توان استفاده کرد. همچنین می‌توان هایبرنیت را با برنامه‌های دیگر ترکیب کرد مثلاً شرکت آدوبی در نسخه ۹ برنامه ColdFusion خود از هایبرنیت استفاده کرده‌است.
گوین کینگ راهبری گروه نرم‌افزاری توسعه دهنده هایبرنیت را به عهده داشت. بعدها شرکت JBoss (که الان جزئی از شرکت ردهت است) تیم را خرید. در سال ۲۰۱۰ آخرین نسخه هایبرنیت شماره ۳ است. این نسخه شامل ویژگی‌های جدیدی مانند فیلترهای سلیقه‌ای و پشتیبانی از حاشیه‌نویسی جاوا ۵ است. در حال حاضر هایبرنیت پیاده‌سازی تأیید شده نسخه یکم Java persistence API است که با استاندارد JSR 220 JPA سازگاری کامل دارد.public class User {
//create product object Product product=new Product(12000,”Computer Monitor”); //create session factory SessionFactory factory= new Configuration().configure().buildSessionFactory(); //get a session Session session =factory.getCurrentSession(); //save a product in database session.beginTransaction(); session save(product);//saved! session.getTransaction().commit(); //retrive first product with id 12000 from database session.beginTransaction(); Product prod = (Prodcut) session.createQuery("from Product as productObj where prodcutObj.id=12000").list().get(0); session.getTransaction().commit();