2010-01-04 4 views
6

Il mio persistence.xml ha 2 unità di persistenza. Ognuno di essi ha diversi elementi <class>.Perché è necessario specificare la classe all'interno dell'elemento <persistence-unit>?

Ho pensato che dobbiamo specificare tutte le classi relative a determinate unità di persistenza. Ma ho dimenticato per errore di specificare l'elemento di classe per la nuova entità, ma il programma ha funzionato bene anche senza di esso. Poi ho rimosso tutti gli elementi di classe e tutto ha funzionato bene. Quindi, perché ne abbiamo bisogno?

codice di esempio:

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

risposta

7

Se non sono state specificate le classi nel file persistence.xml, il gestore di persistenza gestirà tutte le classi di entità nella posizione in cui esiste il file persistence.xml (file jar, directory classe).

Le classi di quotazioni offrono flessibilità per scegliere le entità e raggrupparle in unità di persistenza. Puoi avere un controllo più preciso su un determinato nome di unità permanente ecc.

Quindi, nella maggior parte dei casi di base, le classi di elencazione non sono necessarie e la maggior parte delle impementazioni JPA rileva tutte le entità per te.

+0

Ho scoperto che è possibile impedire la gestione di tutte le classi di entità utilizzando solo l'elemento . – Roman

3

Alcuni provider di persistenza (Sospensione per esempio) la scansione del percorso di classe per le classi di entità.

+0

Significa che in generale non dovremmo aggiungere elementi di classe all'interno dell'unità di persistenza? – Roman

+0

sì (15 caratteri req) – Bozho