• temel olarak,sql kullanılarak bir dbserver üzerinden yapılan işlemlerin***** java fonksiyonları ve kendine özgü hql ile objeler üzerinden,dbserverdan bağımsız olarak yapılması mantığı ile ortaya çıkmıştır.
    veriler işlenirken,objeler üzerinde cursor,iterator ile teker teker işlem yapmak yerine hql ile sql de olduğu gibi veri kümeleri üzerinde işlem yapılabilir.
    veri tabanındaki tabloların bilgisi*** xml tabanlı hbm* dosyasında tutulur ve javada yaratılan tablonun eşleniği objeler getter,setter methodları ile dbserver'daki verilere bu dosyaları referans alarak ulaşır.bu işlemler sırasında third party c3po,proxol gibi connection pooling,ehcache,oscache gibi caching araçları/kütüphaneleri kullanabilir.
    geliştirme ekibinin büyük çoğunluğunun jboss bünyesine geçmesi ile muhtemelen jbossun ilerideki sürümlerinde bundled olarak gelecektir.
    http://hibernatesynch.sourceforge.net/ adresindeki şahane eclipse plug-ini ile var olan bir projeye entegre edilmesi yarım saat içinde gerçekleştirilebilmektedir.
  • sıfır sql yazarak bir java nesnesini veri tabanına yazmayi, oradan da okumayi mümkün kilan süper teknoloji.
    http://www.hibernate.org/
    (bkz: jdo)
  • eğer hibernate seçeneği denetim masası/güç seçenekleri bölümünde aktif ise, hard diskinizin ram kadar kısmı bekleme moduna ayrılmı$ durumdadır.

    örneğin 1 gb raminiz varsa c:\ dizininde 1 gb'lık hiberfil.sys adlı dosya, siz bekleme modunu aylarca kullanmasanız bile hazır ve nazır beklemektedir.*
  • windows işletim sisteminin, bilgisayarı kapatırken ram'deki bütün bilgiyi hdd'ye kopyalayarak bilgisayarın çok hızlı açılmasını sağlayan $ukela bir kapatma seçeneği. lakin her gülün bir dikeni olduğu gibi bu abimiz de özellikle dizüstü bilgisayarlar için tasarlandığından, masaüstü pc'lerde çok fazla sorun çıkarabilmektedir (bkz: fiziksel belleğin dökümüne başlanıyor). bu yüzden eğer sorunsuzsa eyvallah, yoksa masaüstü pc'lerde kullanılması pek tavsiye edilmez, deneyin görün.
  • pojoları veritabanına kaydetmeye yarar. jboss ejb3.0 implementasyonundaki entity beanlerin persistence altyapısıdır, normalde hsql'e kaydeder ama persistence.xml ya da başka bir yolla başka veritabanına yerleşebilir.

    jee 5 (ya da basitçe ejb 3) kullanıyorsanız annotationlarla nasıl "hibernate" edebileceğini söylersiniz. eğer ejb3ünüz yoksa j2ee ya da klasik java yazıyorsanız xdoclet kullanarak nasıl saklanacağını yazarsınız, xml ile uğraşmanıza gerek kalmaz.

    detaylı veriyapılarını saklarken biraz acı çekebilirsiniz. bu da deneyimle alakalı, 2. seferde çok rahat ediyorsunuz. ama yine de hibernate kullanmak yerine ejb3 ve container managed persistence kullanın. hiç kasmayın.

    eğer ki jee5 ya da j2ee yazılım geliştiriyorsanız ve kendinizi containerınızın xml dosyalarını, yazılımınız için düzenlerken bulursanız bilin ki birşeyleri yanlış yapıyorsunuz. düzgün hazırlanmış bir ear dosyası ile yapamayacağınız ayar yok (en azından jbossta)

    bu da 3 günün kuyruk acısı böyle bir anı.
  • çoğunlukla nasıl çalıştığını, nasıl işlediğini, arkada neler yapıp ettiğini, nasıl kullanılması gerektiğini bilmeyenlerin kullandığı orm aracı.

    doğru kullanıldığında veriyi alıp vermek için harcadığınız emeği azaltır;
    - hql sorgularınız konfigürasyon ile beraber kontrol edilir. hataları varsa çabuk ortaya çıkar. geliştirme ortamında ve canlı ortamda farklı veritabanları kullanabilirsiniz (son cümle biraz yalan biraz gerçek)
    - criteria api ile çalışma zamanında sorgu üretme daha hatasız ve güvenli olur.
    - kod tekrar kullanımı (hadi bilemediniz kopyala-yapıştır'ı) kolaydır.
    birçok durumda iş mantığını yazmak için daha fazla vakit ayırabilirsiniz.

    velhasıl kelam, bol reklamı yapılan -ama hibernate'in daha pek yeni olduğu(*)- big data ve tüm tutorial'ların örneklerin konusu small data arasına düşen bölgede dikkatli kullanınız. o örneklerde gördüğünüz şeylerin çoğu uğraşmanız gereken veri veya ilişki miktarı çok az büyüdüğünde bile size saç baş yolduracak. oturun başından sonuna o dokümanı okuyun. okuduğunuza değecek, dünya sizin için daha güzel bir yer olacak. diğer taraftan da jdbc nedir ona da bir bakın, jdbc ile istediğiniz işi yapmanın maliyetini ve performansını tahmin edebilir hale gelin.

    (*) nosql veritabanları için hibernate-ogm var ama kullanmadım, yorumu olan varsa yeşillendirsin.
  • yanlış ellerde çok büyük sorunlara neden olabilen muhteşem orm aracı. büyük güç büyük sorumluluk getirir.

    yaratılan bir objenin tablosunu, relation'larını, column'larını kısaca her şeyini kendisi yaratıp tek satır sql yazmadan yazılımcıya inanılmaz şeyler sunuyor. peki yazılımcı ne yapıyor? ilgili kodu push'layıp, sql script'ini yazmadan/test etmeden basıp geçiyor. sonuç "booom".

    özellikle büyük projelerde kullanırken yazılımcı için çok kolaylık sağlaması bir o kadar da dikkatli kullanılmasını gerektiriyor.

    edit: söylemeyi unutmuşum, çok seviyoruz kendisini.
  • youtube'da hibernate'i kapsamlı bir şekilde anlatan türkçe kaynak:

    hibernate dersleri
  • hayal gucunu genisleten kufurler esliginde hata ayiklattiran orm araci
  • net bir şekilde konuşuyorum, kullanmayın, kullanmak isteyene de mani olun. hele ki türkiye sınırlarında kullanmak istiyorsanız yanına yaklaşmayın.

    kolay işleri yapma konusunda developmentı hızlandırma konusunda gerçekten güzel ama olay biraz kompleksleşmeye başlayınca sıçtınız. gerçekten sıçtınız. 10 yıl içinde onlarca kez update edilen tonlarca dökümana hakimim diyorsanız diyecek sözüm yok ama bulunduğumuz ortam bunları yapabilecek zamana bütçeye izin vermiyor.

    ben bunu kullandım, yıllarca kullandım ama artık öyle bir raddeye geldi ki source codeunu okumaktan ben yoruldum. adamlar kafalarına göre değişiklikler yapıyor source codeta ve bunun dökümantasyona yazılması en az 1000 developer bu sorundan müzdarip olmasından sonra oluyor.

    çok taşaklı bir işe giriştiler lafım yok ama yiyemeyecekleri taşşağın altına girdiklerini zamanla anladılar. bugfix yaptılar ama günü kurtarmak için yaptılar, feature geliştirdiler ama hibernate daha ölmediyi bize göstermek için yaptılar.

    bir adam hibernatede expertim diyebilmesi için ya hibernatein founderı olması lazım ya da tek işinin hibernate olması lazım.

    gerçekten biraz kompleks şeyler yapacağınızı düşünüyorsanız bulaşmayın. şimdi kafada şu soru oluşuyor: kompleks şey nedir. ben de o olayı size şöyle anlatayım, eğer bir framework aynı şeyi 10 farklı şekilde yapmaya olanak sağlıyorsa o framework zaten kendi içinde kompleks olmuştur bir kere.

    valla kullanmayın ya...
hesabın var mı? giriş yap