2009-10-20 10 views

risposta

12

Credo che Fluent-NHibernate si affidi alle belle funzionalità fornite da Linq in C# 3.0 se non sbaglio. Fino a quando Java non implementerà le espressioni lambda, ecc. Non penso che vedremo Fluent Hibernate.

Tuttavia, potrei sbagliarmi. :)

+1

buon punto. Mi stavo concentrando sull'interfaccia di stile fluente e mi chiedevo se questo fosse un problema e non lo avessi trovato. Ma dentro le chiamate concatenate ci sono espressioni lambda, doh! –

+10

Dalla bocca dei cavalli (sono lo sviluppatore principale di Fluent NHibernate): la ragione per cui l'Hibernate Fluente non esiste è proprio a causa della mancanza di espressioni lambda. Non è solo la mancanza di lambda di base, ma la capacità di analizzare quelle espressioni su cui FNH fa molto affidamento; senza il quale avresti bisogno di ricorrere agli archi e non è meglio di XML a mio avviso. Però è sempre una possibilità per il futuro. –

+0

@James: Durante l'utilizzo di lambda in quanto i dati sono interessanti, trovo che la mappatura basata sulla convenzione è la mia motivazione principale per l'utilizzo di FNH. È incredibilmente facile "far funzionare qualcosa", quindi bloccare lo schema in un secondo momento. L'unico problema che vedo è il fatto che il pattern di chiusura annidato viene utilizzato in tutto FNH; mentre ciò funziona bene con C#, Java non ha il supporto per i metodi anonimi (anche se è possibile creare funtori tramite classi anonime). Penso che Fluent Hibernate funzioni abbastanza bene in Scala, e potrebbe funzionare in qualche modo in Java. – Charles

2

Groovy supporta le espressioni lambda (anche se le chiamano in modo confuso le chiusure) e le classi Groovy sono direttamente accessibili da Java. Forse le mappature per le app Java potrebbero essere scritte in Groovy.

Solo un pensiero.

1

Scala supporta lambda's, giusto (sono totalmente newbie di Scala). Ed è completamente interoperabile con Java a livello di compilazione statica. Sembra che Scala + Hibernate consentirebbe fluente sul lato Java.

+1

Per essere completamente pedante, sarebbe abilitare "fluente" sul lato JVM. –

Problemi correlati