2012-04-17 19 views
8

Come ho iniziato a lavorare con Hibernate pochi giorni fa, mi stavo chiedendo: supponiamo che tu stia iniziando un progetto da zero. Useresti una mappatura basata sull'annotazione o file di mappatura di Hibernate, per generare lo schema del database.Ibernazione: associazione di file o annotazioni?

È a mia conoscenza che i file di mapping di Hibernate offrono alcune funzionalità che non si troveranno (almeno non l'equivalente esatto) con le annotazioni. Tuttavia, ho la sensazione che oggigiorno i progetti che utilizzano Hibernate preferiscano i file di mappatura Hibernate basati sull'annotazione.

Qualcuno ha mai scelto di mappare i file sulle annotazioni e, in caso affermativo, per quali motivi?

risposta

12

Quali vantaggi che vedo in utilizzando @Annotations:

  • compilatore-safe
  • sulla base @Entity si può facilmente distinguere entità da no-entità
  • con la caratteristica di entités packagesToScan primavera sono facilmente scansionabile
  • le entrate mobili dai pacchetti ai pacchetti o la ridenominazione delle classi è facile

Quali vantaggi che vedo in utilizzando XML:

  • esso non cucciolate classi Java con inutili specifici del produttore annotazioni (immaginare java classe del modello con JPA, JAXB, SOLRJ annotazioni)
  • configurazione un posto
  • più facile da mantenere nel suo complesso

usiamo annotazioni, ma mantenere XML come opzione.

4

Vai avanti con annotazioni ogni giorno. Le configurazioni XML in cui è davvero troppo usato e il salvataggio dei metadati all'interno della classe è una buona opzione praticabile.

Le annotazioni consentono di mappare meglio le relazioni e si allineeranno allo standard JPA poiché la sospensione utilizza principalmente annotazioni JPA. Non ci sono problemi reali nell'usare le annotazioni e non c'è nemmeno molto trade-off. Offre vantaggi superiori rispetto alle configurazioni basate su XML. Potrebbero mancare alcuni hack quando usi le annotazioni ma arriveranno.

È persino possibile utilizzare le annotazioni per le nuove classi in un progetto legacy che ha una mappatura basata su XML come detto here.

Problemi correlati