Sono felice di annunciare la prima versione di una nuova libreria ORM per Scala. MapperDao associa le classi di dominio alle tabelle del database. Attualmente supporta mysql, postgresql (il driver oracle sarà presto disponibile), le relazioni one-to-one, many-to-one, one-to-many, many-to-many, le chiavi autogenerate, le transazioni e si integra opzionalmente con la primavera struttura. Permette la libertà nella progettazione delle classi di dominio che non sono influenzate dai dettagli di persistenza, incoraggia l'immutabilità ed è sicuro. La libreria non è basata sulla riflessione, ma piuttosto sui buoni principi di progettazione di Scala e contiene una DSL per interrogare i dati, che ricorda da vicino le query selezionate. Non richiede l'implementazione di equals() o hashCode() metodi che possono essere problematici per le entità persistenti. La mappatura viene eseguita usando il codice Scala di tipo sicuro.
Dettagli e istruzioni per l'uso si possono trovare presso il sito del mapperdao:
http://code.google.com/p/mapperdao/
La libreria è disponibile per il download sul sito di cui sopra e anche come una dipendenza Maven (documentazione contiene dettagli su come usarlo via maven)
Esempi possono essere trovati in:
https://code.google.com/p/mapperdao-examples/
molto breve introduzione della biblioteca tramite codice di esempio:
class Product(val name: String, val attributes: Set[Attribute])
class Attribute(val name: String, val value: String)
...
val product = new Product("blue jean", Set(new Attribute("colour", "blue"), new Attribute("size", "medium")))
val inserted = mapperDao.insert(ProductEntity, product)
// the persisted entity has an id property:
println("%d : %s".format(inserted.id,inserted))
Interrogazione è molto familiare:
val o=OrderEntity
import Query._
val orders = query(select from o where o.totalAmount >= 20.0 and o.totalAmount <= 30.0)
println(orders) // a list of orders
incoraggio tutti di utilizzare la libreria e dare un feedback. La documentazione è attualmente piuttosto estesa, con le istruzioni di installazione e utilizzo. Non esitate a commentare ed entrare in contatto con me a kostas dot kougios su googlemail dot com.
Grazie,
Kostantinos Kougios
Questo è abbastanza bello: non vedo l'ora di provarlo. –
Ottimo per vedere più attenzione allo spazio ORM in Scala nativa. Un'altra libreria che ho trovato è http://squeryl.org/. Fornisce funzionalità di stile .net Linq alle tue domande. – user127386