equivalente ActiveRecord in Java [chiuso]

1

La mia domanda è abbastanza semplice. Qual è l'ORM più vicino a ActiveRecord che sarei in grado di trovare per Java?

In altre parole, in termini di modelli di pensiero e conoscenza, con tempo di sviluppo limitato, quale ORM dovrei usare per Java, proveniente da uno sfondo Rails + ActiveRecord? Quale è abbastanza buono e sarebbe abbastanza facile / veloce da imparare?

    
posta Marco Prins 12.01.2015 - 15:44
fonte

1 risposta

4

ActiveRecord, il Ruby ORM, si affida molto alle funzionalità di Ruby che non sono disponibili in Java, in particolare il metodo "method_missing" e la capacità di creare variabili membro dinamicamente. Le implementazioni di Active Record, il pattern, su Java sono quindi più difficili da gestire rispetto a Ruby. In genere, devi accettare uno dei seguenti difetti:

    I campi
  • del tuo oggetto sono accessibili tramite un metodo generico "get (fieldName)" piuttosto che direttamente, il che significa che perdi la sicurezza del tipo, il vantaggio principale dell'uso di Java piuttosto che di Ruby o

  • usi codice generato per le tue classi modello, quindi sei limitato ad avere un "modello anemico", che molti considerano un antipattern.

Per questo motivo, la maggior parte degli ORM Java utilizza i modelli di repository o oggetti di accesso ai dati, che semplificano l'eliminazione di questi problemi quando si lavora in un linguaggio statico. Il pattern Active Record è più comunemente usato da codice di persistenza codificato a mano, piuttosto che da ORM.

Consiglierei di imparare come utilizzare il modello di repository; è leggermente più complesso di Active Record, richiede un oggetto extra per classe di modello, ma è più flessibile a lungo termine.

    
risposta data 12.01.2015 - 19:50
fonte

Leggi altre domande sui tag