Domanda

ho fatto uso delle seguenti implementazioni JPA:

  1. Hibernate,
  2. TopLink,
  3. OpenJPA

Ognuno di loro ha i propri punti di forza e di debolezza. Ho trovato Hibernate il più avanzato dei tre eccetto che mescola alcuni dei suoi miglioramenti con APP che ha reso difficile per passare ad altri fornitori. Ancora più importante, la sua parser interrogazione era molto più indulgente quando si interpretano JPA. Essi rendono un po 'difficile ottenere le librerie corrette a supporto per sospensione perché ho trovato una missione cercando di ottenere le versioni corrette di tutte le dipendenze.

Braccio terzo punto era male, ma è lasciato con la sensazione che sia un po 'paralizzato come sembra Oracle vuole di utilizzare / acquistare? loro biblioteca più avanzato. Cercando di scaricare era anche una missione perché è necessario installarlo tramite l'esecuzione di un file jar. Ho trovato che implementato solo le specifiche di base APP. La ragione per cui ho usato era Hibernate utilizza un sacco di librerie che vengono comunemente utilizzati in altri progetti open source che si potrebbe ottenere spesso problemi classloarder, specialmente quando si usano JBoss

OpenJPA - Questo è di gran lunga la migliore documentazione ed è facile da scaricare e utilizzare, ma sembra che la sua stessa buggy. Forse il suo solo il mio codice ma il codice ho trovato più l'uso avanzato come le relazioni con OneToMany CascadeType.all impostare semplicemente non sembrano funzionare. Certo Può essere il mio codice che era sbagliato e non ho avuto tempo di provare un caso pulito ma molti incidenti come questo mi lasciano paura di usarlo. Spero davvero che c'è di meglio. I suoi messaggi di errore sono spesso inutili per aiutare a risolvere il problema.

Quali altre biblioteche hanno utilizzato le persone e quali fare che preferiscono e perché?

È stato utile?

Soluzione

Ho avuto le stesse conclusioni di queste implementazioni.

  1. OpenJPA era / sembrava buggy

  2. Sospensione aveva tonnellate di librerie e sembrava avere problemi con non caricamento pigro tutto.

  3. Braccio terzo finì come la mia scelta. Non era flessibile come Hibernate sarebbe stato ma funziona e non è necessario installare commons-logging .

Quello che vorrei provare successivo è JPOX, che è stato recentemente rinominato DataNucleus .

Altri suggerimenti

Personalmente non mi sento OpenJPA è ancora abbastanza maturo. Ci sono altre librerie open source che sono più maturi e avrei preferito usare quelli. Questi sono quelli Vorrei prendere in considerazione in ordine:

  1. Sospensione. Hibernate è stato intorno per molto tempo e ha davvero aperto la strada per ORM in Java. L'unico problema che ho con Hibernate è la concessione di licenze. È LGPL licenza che può causare alcune aziende commerciali a dimenarsi (per ragioni che non voglio in questa sede). In ogni caso, se LGPL è un problema per voi, è probabilmente un bene di stare alla larga.

  2. EclipseLink. Alcuni retroscena sul EclipseLink. Braccio terzo Essentials è la versione gratuita di Oracle della loro attuazione JPA. EclipseLink è stato preso da TopLink, la piena attuazione JPA soffiato di Oracle. EclipseLink sta per essere il fornitore JPA 2.0 per Glassfish v3.0 così sembra che tutto quello che si sta allontanando da TopLink Essentials e EclipseLink. Anche se la versione EclipseLink è soltanto 1.0.2, il prodotto è stato in giro per molto tempo sotto altri nomi.

Un progetto a cui sto lavorando è sulla TopLink Essentials in questo momento, ma abbiamo intenzione di passare a EclipseLink breve. Hibernate è stato fuori per i problemi di licenza che ho menzionato prima.

OpenJPA è conosciuto come Kodo, che è ciò che ha acquistato BEA abbastanza tempo fa. Kodo è stato implementazione di JDO e ora JPA. Inoltre, utilizziamo OpenJPA in modo intensivo. Così, profondo del cuore non dico che non è maturo. E 'bene però vorrei suggerire di usare Hibernate, vale a dire, involucri JPA intorno Hibernate.

La ragione? 1) JPA è molto, molto simile a Sospensione 2) Molti posti di lavoro ha requisito Hibernate. E 'meglio appoggiarsi a prodotti tradizionali ... in fondo

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