2010-01-04 17 views
6

Benim persistence.xml 2 kalıcılık birimine sahiptir. Her birinin çeşitli <class> öğeleri var.Neden <persistence-unit> öğesi içindeki sınıfı belirtmemiz gerekiyor?

Belirli kalıcılık birimiyle ilgili tüm sınıfları belirtmemiz gerektiğini düşündüm. Ama yanlışlıkla yeni öğe için sınıf öğesini belirtmeyi unuttum ama program bile onsuz iyi çalıştı. Sonra tüm sınıf öğelerini kaldırdım ve her şey iyi çalıştı. Öyleyse neden ihtiyacımız var?

örnek kod:

<persistence-unit name="JiraManager" transaction-type="RESOURCE_LOCAL"> 
    <class>chartdemo.model.domain.Category</class> 
</persistence-unit> 

cevap

7

persistence.xml dosyasında sınıflar belirtmemişseniz, kalıcınız, persistence.xml dosyasının bulunduğu tüm varlık sınıflarını yönetecektir (jar dosyası, sınıf dizini).

Listeleme sınıfları, varlıkları seçmek ve bunları kalıcı birimlerde gruplandırmak için esneklik sağlar. Belirli bir kalıcı birim ismini içeren daha iyi bir kontrole sahip olabilirsiniz - diğer kavanozlara ait girişleri de ekleyebilirsiniz.

Çoğu temel durumda, sınıfları listelemek gereksizdir ve JPA emdirme işlemlerinin çoğu sizin için tüm varlıkları keşfeder.

+0

Tüm varlık sınıflarını yalnızca öğesini kullanarak yönetmeyi engelleyebileceğimizi buldum. – Roman

3

Bazı kalıcılık sağlayıcıları (örneğin Hazırda) varlık sınıfları için sınıf yolunu tarayın.

+0

Genel durumda, kalıcılık birimine sınıf öğesi eklemememiz gerektiği anlamına mı geliyor? – Roman

+0

yes (15 karakter req) – Bozho

İlgili konular