1

JPA üzerinden birden fazla veritabanına/veri kaynağına bağlanma hakkında bazı belgeler gördüm, ancak tam olarak yapmak istediğim bu değil. Geliştirme için bir veritabanı sağlayıcısı ve üretim için tamamen farklı bir veritabanı sağlayıcısı (ve muhtemelen QA) kullanmak istiyorum. Bu soru aynı zamanda farklı veri tabanı sağlayıcıları ile farklı üretim ortamlarını desteklemek için de geçerli olacaktır (yani, İstemci 1 için DB2, İstemci 2 için Oracle, İstemci 3 için MySQL, vb.). Benim durumumdaJPA ile Üretim ve Üretime Yönelik Farklı Veritabanı Sağlayıcılarını Kullanma

, ben aşağıdakileri yapmak istiyorum: geliştirme amaçları üretim amaçlı IBM DB2 ile

  • kullanım JPA için Apache Derby ile

    • kullanımı JPA

    Biz değil kullanın Spring :(

    MyBatis ile, desteklemek istediğim her veritabanı için XML eşleştirmeleri sağlayabilir ve tüm sonuçları aynı varlıklar/POJO'lara geri gönderebilirim. Şimdiye kadar bana öyle geliyor ki, JPA, her şeyden önce Hizmet katmanına (varlıkların, DAO'ların, sql'in her veri tabanı için özel olması) kadar herşeyi gerektirecektir.

    Derby'yi geliştirme için geliştirme ve DB2 üretimi için kullanmak üzere uygulamanızı nasıl kuracağınızı öğrenmek istiyorum. Her ikisi için de aynı varlıkları kullanabilir miyim, DAO katmanını ayrı projelere ayırmalı mıyım, bir persistence.xml kullanabilir miyim?

    Lütfen bunun için hangi yaklaşımı önereceğinizi düşünelim.

  • +0

    ve JPA'daki her veritabanı için XML eşleştirmeleri sağlayabilirsiniz; Farklı veri kümelerinde farklı bir şema kullanmanız gerekirse ek açıklamaları kullanmazsınız –

    cevap

    0

    Bu oldukça yaygın bir senaryo olup, JPA'yı düzgün bir şekilde kullanıyorsanız hiçbir şeyi kopyalamanız gerekmez. Aynı @Entity sınıflarını ve DAO'ları kullanabilirsiniz.

    Maven kullanıyorsanız, bazı Maven profillerine özel bağlantı ayarlarını yapabilirsiniz, örn. Her ortam için profil oluşturun ve ardından Maven kaynak filtrelemenin persistence.xml dosyanızdaki özelliklerini doldurmasına izin verin (bkz. this answer).