Şu anda Tomcat, Spring 4, Spring Security, MySQL ve Hibernate ile JPA kullanarak üzerinde çalışıyorum.
JPA'yı, ORM sağlayıcılarının altta yatan uygulamasının kesintisiz veya en azından daha az acı verici bir şekilde değiştirilmesini beklemek açısından seçtim. Bunun zihinsel olarak uygulama üzerindeki spesifikasyonları kullandığını söyleyebilirim (JAX-RS), Java geliştirme topluluğunun varsayılan noktasıdır.
Bu gerçekten yapmaya değer bir iş olup olmadığını merak ediyorum. Hibernate'i doğrudan kullanırsam, ana JPA spesifikasyonunun bir parçası olmayan özellikleri kullanabildiğim için biraz güç kazanacağımdan eminim.
Endişemin bir kısmı YAGNI fikrinden geliyor. Temelde belirli bir tarzda ve modda programlama yapıyorum (Hazırda Bekletme yerine JPA kullanarak), böylece gelecekte bir noktada ORM uygulamamı değiştirebilirim. Bunun, ürünün ömrü boyunca gerçekleşeceğinden şüphe duyuyorum, bu nedenle, esasen muhtemelen faydalarından asla yararlanamayacağım bir şeye çaba sarfediyorum.
Düşüncelerin nelerdir? JPA gibi şeyler söz konusu olduğunda "arayüze programlama" buna değer mi? Hiç bir üründe ORM uygulamasının tamamını değiştirdiniz mi? JPA sızıntısı gibi bir şeyden soyutlama işleminden tamamen kaçınabildiniz mi? Şahsen şimdiden tek bir yerel SQL çağrısına sahibim (veritabanı tablolarını temizlemek için) ve JPA spesifikasyonuna dahil edilmiş (bunun için yöntemlerin öneklerini al / ayarla ve ÜYE OF arasındaki fark) Sadece kendimi temel bir uygulamaya bağlayan IN / IN, kaçınmam için herhangi bir şansı doğurur.