SORU
22 Kasım 2009, Pazar


≪sınıf> persistence.xml elemanları ihtiyacım var mı?

Çok basit persistance.xml dosya var:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <class>pl.michalmech.eventractor.domain.User</class>
        <class>pl.michalmech.eventractor.domain.Address</class>
        <class>pl.michalmech.eventractor.domain.City</class>
        <class>pl.michalmech.eventractor.domain.Country</class>

        <properties>
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>

</persistence>

ve işe yarıyor.

Ama ben <class> elemanları uygulama varlıkları (tüm sınıflar @Entity ile açıklamalı) görmüyor kaldırdığınızda.

Herhangi bir otomatik mekanizma @Entity sınıflar için tarama var mı?

CEVAP
22 Kasım 2009, Pazar


Bu persistence.xml kullanabileceğiniz jar-file vardır. the Java EE 5 tutorial:

<persistence>
    <persistence-unit name="OrderManagement">
        <description>This unit manages orders and customers.
            It does not rely on any vendor-specific features and can
            therefore be deployed to any persistence provider.
        </description>
        <jta-data-source>jdbc/MyOrderDB</jta-data-source>
        <jar-file>MyOrderApp.jar</jar-file>
        <class>com.widgets.Order</class>
        <class>com.widgets.Customer</class>
    </persistence-unit>
</persistence>

Bu dosya bir kalıcılık birimi tanımlar bir kullanan OrderManagement adlı JTA uyumlu veri kaynağı 10**. jar-file class öğeleri belirtin yönetilen kalıcılık sınıflar: varlık sınıfları, gömülebilir sınıflar ve eşlenen superclasses. jar-file eleman class eleman açıkça isimleri dayanıklılık sınıfları başardı ise yönetilen kalıcılık sınıfları içeren paketlenmiş kalıcılık birimi görünür JAR dosyaları belirtir.

Hazırda bekleme durumunda, Chapter2. Setup and configuration daha fazla ayrıntı için bir göz var.

DÜZENLEME:Eğer spec uyumlu olmanın bir sakıncası yok, Eğer doğru değilse aslında, Uyku bile Java SE otomatik algılama destekler. Bunu yapmak için hibernate.archive.autodetection özelliği ekleyin:

<persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
  <!-- This is required to be spec compliant, Hibernate however supports
       auto-detection even in JSE.
  <class>pl.michalmech.eventractor.domain.User</class>
  <class>pl.michalmech.eventractor.domain.Address</class>
  <class>pl.michalmech.eventractor.domain.City</class>
  <class>pl.michalmech.eventractor.domain.Country</class>
   -->

  <properties>
    <!-- Scan for annotated classes and Hibernate mapping XML files -->
    <property name="hibernate.archive.autodetection" value="class, hbm"/>

    <property name="hibernate.hbm2ddl.auto" value="validate" />
    <property name="hibernate.show_sql" value="true" />
  </properties>
</persistence-unit>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006