Domanda

Ho una webapp, il cui originale codice di base è stato sviluppato con una mano di sospensione file di mapping.Da allora, sono diventato abbastanza bravo a 'codificazione' il mio hbm.xml file.Ma tutti i ragazzi si stanno usando le annotazioni in questi giorni.

Quindi, la domanda è: Vale la pena per il refactoring del codice di usare hibernate annotazioni?Ci guadagno nulla, oltre ad essere moderno e alla moda?Io perda il controllo che ho nella mia mano esistenti codificato il file di mapping?

Un sub-domanda è, quanta fatica sarà? Mi piace il mio database di magra.La mappatura copre solo una dozzina di oggetti di dominio, di cui due set, alcune sottoclassi, e circa 8 tavoli.

Grazie, cari SOpedians, in anticipo per il vostro informato opinioni.

È stato utile?

Soluzione

"Se non è rotto non risolvere il problema!"

Io sono un vecchio stile POJO/POCO tipo di ragazzo comunque, ma perché cambiare per annotazioni, solo per essere cool?Al meglio della mia conoscenza si può fare la maggior parte della roba come annotazioni, ma più complesso mapping a volte sono espresso più chiaramente come XML.

Altri suggerimenti

Una cosa che si ottengono dall'utilizzo di annotazioni invece di un file di mapping esterno è che il tuo informazioni di mappatura sarà sulle classi e sui campi che migliora la gestibilità.È possibile aggiungere un campo, è subito aggiungere l'annotazione.Si rimuovere uno, è inoltre possibile rimuovere l'annotazione.ridenominazione di una classe o di un campo, l'annotazione è lì e si può rinominare la tabella o colonna come bene.si apportano modifiche nella ereditarietà di classe, è preso in considerazione.Non devi andare e modificare un file esterno, qualche tempo dopo.questo rende il tutto più efficiente e meno soggetto ad errori.

Dall'altro lato, si perde la visione globale del tuo file di mapping utilizzato per darvi.

Recentemente ho fatto sia in un progetto e trovato:

  1. Io preferisco scrivere annotazioni XML (gioca bene con tipizzazione statica di Java, il completamento automatico in IDE, refactoring, ecc).Mi piace vedere le cose di tutti intrecciati tra loro, piuttosto che andare avanti e indietro tra il codice e XML.
  2. Codifica db informazioni nelle classi.Alcune persone trovano che lordo e inaccettabile.Non posso dire che mi dava fastidio.Si deve andare da qualche parte e andiamo a ricostruire la GUERRA per un cambiamento a prescindere.
  3. Abbiamo effettivamente è andato tutto il modo per JPA annotazioni, ma ci sono sicuramente casi in cui l'APP annotazioni non sono abbastanza, quindi ha dovuto usare Hibernate annotazioni o config per modificare.
  4. Nota che si può effettivamente utilizzare sia le annotazioni E hbm file.Potrebbe essere una bella ibrida che consente di specificare la O parte di annotazioni e R parte hbm file, ma suona come più problemi di quanto ne vale la pena.

Quanto mi piace passare a nuove e potenzialmente migliori cose che ho bisogno di ricordare a non pasticciare con le cose che non sono rotti.Quindi se avere la sospensione mapping in un file separato sta lavorando per voi ora non vorrei cambiare.

Io preferisco decisamente le annotazioni, avendo usato entrambi.Sono molto più gestibile e da non trattare con che molte classi di ri-mappa, direi che ne vale la pena.Le annotazioni fare refactoring molto più facile.

Tutte le funzioni sono supportate sia in XML e nelle annotazioni.Si sarà ancora in grado di sostituire la tua annotazioni con una dichiarazione xml.

Come per lo sforzo, credo che ne vale la pena, come si sarà in grado di vedere tutti in un posto e non passare tra il codice e il file xml (a meno che, naturalmente, si utilizzano due monitor ;) )

L'unica cosa che ti guadagnare da usare annotazioni

Io probabilmente obiettare che questo è il cosa si vuole ottenere dall'utilizzo di annotazioni.Perchè non puoi compilare i tempi di sicurezza con NHibernate questa è la prossima cosa migliore.

"Se non è rotto non risolvere il problema!"

@Macka - Grazie, avevo bisogno di sentire che.E grazie a tutti per le vostre risposte.

Mentre io sono in posizione molto fortunata di avere un folle quantità di professionale e creativo il controllo sul mio lavoro, e in grado di apportare in qualsiasi tipo di tecnologia, biblioteca, o strumento per qualsiasi motivo (baring roba costosa) di cui "perché tutti i ragazzi sono il suo utilizzo"...Non ha veramente senso alla porta, ciò che equivale ad una porzione significativa del nucleo di un progetto esistente.

Cercherò di fuori di Sospensione o JPA annotazioni con un verde-campo un progetto di qualche tempo.Purtroppo, raramente mi capita di nuovo completamente indipendente di progetti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top