2010-01-29 6 views
18

Sto creando una piccola applicazione per la mia azienda in Lift. Sono piuttosto un principiante in Scala/Lift, quindi sto usando questa opportunità per esercitarmi. Ora, ho una domanda su quale sistema ORM usare.ORM per Lift: Mapper o JPA?

Da un lato, Mapper è il valore predefinito di Sollevamento. D'altra parte, ho letto che non è buono in certe aree e sarà sostituito da Record (che non è ancora ben documentato, così difficile da seguire da un nuovo utente come me).

Di fronte a Mapper abbiamo JPA: standard Java, testato e robusto ORM con implementazioni attendibili come Hibernate, ma non del tutto "scala-ish" e si perdono le funzionalità fornite di default da Mapper a causa della sua integrazione con Lift.

Ho letto sulle mailing list alcune affermazioni che l'APP sta diventando la soluzione da adottare per Lift, ma non sembra un'opinione diffusa. Qualcuno può far luce sulla questione?

Grazie!

+0

ups, grazie per la correzione Joel :) –

risposta

3

Dipende da ciò di cui hai bisogno. Se hai un modello che usa pesantemente l'ereditarietà e le relazioni uno/molti-a-molti, allora potresti stare meglio con JPA.

Tuttavia, se si desidera un rapido turnaround, Mapper è la strada da percorrere. Mapper/Crudify sono una grande coppia di impalcature, e quel potere è difficile da battere.

8

Ora sto affrontando lo stesso dilemma :) Prendi in considerazione che Mapper/Record non sono più Scalish quindi JPA/Hibernate (ad es. In Mapper e Record si usano entità mutabili). Controlla i frammenti Use of "immutable" Scala entities with Hibernate e Mapping of scala's Option in Hibernate per vedere come puoi utilizzare Hibernate in modo abbastanza scalare. Quindi se già conosci Hibernate e ti senti a tuo agio con esso, è meglio che tu vada in questo modo. Altrimenti per un piccolo progetto puoi provare Mapper.