ORM per sollevamento: mapper o jPA?
Domanda
Sto creando una piccola applicazione per la mia azienda in Lift. Sono piuttosto un principiante in Scala/Lift, quindi sto usando questa possibilità per esercitarmi. Ora, ho una domanda su quale sistema ORM utilizzare.
Da un lato, Mapper è il predefinito di sollevamento. D'altra parte, ho letto che non è buono in determinate aree e sarà sostituito per record (che non è ancora ben documentato, così difficile da seguire da un nuovo utente come me).
Di fronte a Mapper abbiamo JPA: Java standard, testato e robusto ORM con implementazioni affidabili come Hibernate, ma non del tutto "Scala-ish" e perdi le funzionalità fornite per impostazione predefinita da Mapper a causa della sua integrazione con Lift.
Ho letto sulle mailing list alcune affermazioni che JPA sta diventando la strada da percorrere, ma non sembra un'opinione diffusa. Qualcuno può portare un po 'di luce in materia?
Grazie!
Soluzione
Dipende da ciò di cui hai bisogno. Se hai un modello che utilizza pesantemente le relazioni ereditarie e una/molte a molti, allora potresti stare meglio con JPA.
Tuttavia, se si desidera un rapido inversione di tendenza, Mapper è la strada da percorrere. Mapper/Crudify sono una grande coppia di impalcature e quel potere è difficile da battere.
Altri suggerimenti
È possibile implementare la logica aziendale del genere:
- .
- nel database con trigger (vedi le altre risposte)
- nel codice VB con LINQ2SQL utilizzando metodi parziali:
Esempio da http://msdn.microsoft.com/en-us/Biblioteca / BB546176.aspx
.Partial Class Customer Private Sub OnAddressChanged() ' Insert business logic here. End Sub End Class