ฉันมีโครงการที่ฉันกำลังใช้งานอยู่ในปัจจุบันโดยใช้ Tomcat, Spring 4, Spring Security, MySQL, และ JPA w / Hibernate
ฉันเลือก JPA จากมุมมองที่ว่าควรทำการสลับการใช้งานพื้นฐานของผู้ให้บริการ ORM อย่างราบรื่นหรืออย่างน้อยก็เจ็บปวดน้อย ฉันจะบอกว่านี่คือการใช้จิตใจ spec มากกว่าการใช้งาน (JAX-RS) เป็นจุดเริ่มต้นของชุมชนการพัฒนา Java
ฉันสงสัยว่านี่เป็นงานที่ควรทำ ฉันแน่ใจว่าฉันใช้ Hibernate โดยตรงฉันจะได้รับพลังงานเพราะฉันสามารถใช้คุณสมบัติที่ไม่ได้เป็นส่วนหนึ่งของข้อกำหนด JPA หลัก
ส่วนหนึ่งของความกังวลของฉันมาจากความคิดของ YAGNI ฉันกำลังเขียนโปรแกรมในรูปแบบและแฟชั่นที่เฉพาะเจาะจง (โดยใช้ JPA แทน Hibernate) เพื่อที่ในอนาคตฉันสามารถสลับการใช้งาน ORM ของฉันได้ ฉันสงสัยอย่างมากว่าจะเกิดขึ้นตลอดอายุการใช้งานของผลิตภัณฑ์ดังนั้นฉันจึงใช้ความพยายามในสิ่งที่ฉันอาจไม่ได้รับประโยชน์จาก
คุณคิดยังไง? "การเขียนโปรแกรมไปยังอินเทอร์เฟซ" นั้นคุ้มค่าหรือไม่เมื่อพูดถึง JPA คุณเคยเปลี่ยนการใช้งาน ORM ทั้งหมดในผลิตภัณฑ์หรือไม่? คุณเคยสามารถหลีกเลี่ยงสิ่งที่เป็นนามธรรมจาก JPA ที่รั่วไหลไปได้หรือไม่? ฉันเองมีการเรียกใช้ SQL ดั้งเดิมเพียงตัวเดียว (เพื่อล้างตารางฐานข้อมูล) และมีบางสิ่งที่ฉันต้องการ futz ที่สร้างไว้ในข้อมูลจำเพาะ JPA (รับ / ตั้งค่าคำนำหน้ากับวิธีการของคุณและความแตกต่างระหว่างสมาชิกของ / ในซึ่งมีผลผูกมัดตัวฉันเองกับการใช้งานพื้นฐานจะทำให้ฉันมีโอกาสหลีกเลี่ยง