SORU
1 Ocak 2010, Cuma


Persistence.xml olmadan Varlık Yöneticisi oluşturun

Bir şekilde kalıcılık birimi tanımlı olmadan EntityManager başlatılamadı var mı? Tüm gerekli özellikleri bir varlık yöneticisi oluşturmak için verebilir misiniz? Çalışma zamanında kullanıcının belirtilen değerlerden EntityManager oluşturmak için ihtiyacım var. Bu persistence.xml güncelleme ve yeniden bir seçenek değil.

Bunun nasıl yapılacağı hakkında herhangi bir fikre açığız!

CEVAP
2 Ocak 2010, CUMARTESİ


Bir şekilde kalıcılık birimi tanımlı olmadan EntityManager başlatılamadı var mı ?

Tanımlamak gerekiren azındanpersistence.xml dağıtım bir kalıcılık birim tanımlayıcısı.

Tüm gerekli özellikleri bir varlık yöneticisi oluşturmak için verebilir misiniz ?

  • Adı özniteliği gereklidir; diğer öznitelikleri ve öğeler isteğe bağlıdır. (JPA belirtimi)

...

<persistence>
    <persistence-unit name="<REQUIRED_PERSISTENCE_UNIT_NAME_GOES_HERE>">
        SOME_PROPERTIES
    </persistence-unit>
</persistence>

Java EE ortamlarında, jta-data-source ve non-jta-data-source öğeleri belirtmek için kullanılırküresel JNDI JTA ve/veya non-JTA veri kaynağı adıkalıcılık sağlayıcı tarafından kullanılacak.

Eğer hedef Uygulama sunucunuzu JTA destekliyorsa JBoss, Eclipse, Önemli olan, persistence.xml gibi görünüyor

<persistence>
    <persistence-unit name="<REQUIRED_PERSISTENCE_UNIT_NAME_GOES_HERE>">
        <!--GLOBAL_JNDI_GOES_HERE-->
        <jta-data-source>jdbc/myDS</jta-data-source>
    </persistence-unit>
</persistence>

Eğer hedef Uygulama sunucunuzu JTA (Tomcat) desteğine sahip değilse, persistence.xml gibi görünüyor

<persistence>
    <persistence-unit name="<REQUIRED_PERSISTENCE_UNIT_NAME_GOES_HERE>">
        <!--GLOBAL_JNDI_GOES_HERE-->
        <non-jta-data-source>jdbc/myDS</non-jta-data-source>
    </persistence-unit>
</persistence>

Eğer veri kaynağı küresel bir JNDI (Java EE bir konteyner dışında örneğin) bağlı değil, bu yüzden persistence.xml gibi görünüyor

Genellikle JPA provider sürücüsü, url, kullanıcı ve parola özelliklerini tanımlayın.Amaözellik adı JPA sağlayıcı bağlıdır. JPA provider olarak Hazırda göstereceğim

<persistence>
    <persistence-unit name="<REQUIRED_PERSISTENCE_UNIT_NAME_GOES_HERE>">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>br.com.persistence.SomeClass</class>
            <properties>
                <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
                <property name="hibernate.connection.url" value="jdbc:derby://localhost:1527/EmpServDB;create=true"/>
                <property name="hibernate.connection.username" value="APP"/>
                <property name="hibernate.connection.password" value="APP"/>
            </properties>
    </persistence-unit>
</persistence>

İşlem Türü Öznitelik

Java EE ortamlarında genel olarak, RESOURCE_LOCAL işlem tipi non-JTA bir veri kaynağı temin edeceğini varsayar. Eğer bu öğe belirtilmezse değil Java EE ortamında, varsayılan JTA. Eğer bu öğe belirtilmezse,Java SE bir ortamda, RESOURCE_LOCAL varsayılan beklenebilir.

  • Bir Java taşınabilirlik sağlamak için SE uygulamagerekli açıkça listesinikalıcılık biriminin içerdiği dayanıklılık sınıfları (JPA şartname) başardı

Çalışma zamanında kullanıcının belirtilen değerlerden EntityManager oluşturmak için ihtiyacım var

Bu yüzden kullanın

Map addedOrOverridenProperties = new HashMap();

// Let's suppose we are using Hibernate as JPA provider
addedOrOverridenProperties.put("hibernate.show_sql", true);

Persistence.createEntityManagerFactory(<PERSISTENCE_UNIT_NAME_GOES_HERE>, addedOrOverridenProperties);

saygılar,

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chrmoe

    chrmoe

    7 Kasım 2006
  • LounaTutorials

    LounaTutoria

    10 EYLÜL 2009
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007