Me complace anunciar el primer lanzamiento de una nueva biblioteca ORM para Scala. MapperDao asigna clases de dominio a tablas de bases de datos. Actualmente es compatible con mysql, postgresql (el controlador oracle estará disponible pronto), uno a uno, muchos a uno, uno a muchos, muchos a varios relaciones, claves autogeneradas, transacciones y opcionalmente se integra muy bien con la primavera marco de referencia. Permite libertad en el diseño de las clases de dominio que no se ven afectadas por los detalles de persistencia, fomenta la inmutabilidad y es seguro. La biblioteca no se basa en la reflexión sino en buenos principios de diseño de Scala y contiene una DSL para consultar datos, que se asemeja mucho a las consultas de selección. No requiere la implementación de métodos equals() o hashCode() que pueden ser problemáticos para entidades persistentes. El mapeo se hace usando el tipo de código Scala seguro.
detalles e instrucciones de uso se pueden encontrar en el sitio del mapperdao:
http://code.google.com/p/mapperdao/
La biblioteca está disponible para su descarga en el sitio arriba y también como una dependencia experto (documentación contiene información detallada sobre cómo usarlo a través de Maven)
ejemplos se pueden encontrar en:
https://code.google.com/p/mapperdao-examples/
muy breve introducción de la biblioteca a través de código de ejemplo:
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))
Consulta es muy familiar:
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
animo a todos a utilizar la biblioteca y dar retroalimentación. La documentación actualmente es bastante extensa, con instrucciones de instalación y uso. No dude en comentar y ponerse en contacto conmigo en kostas dot kougios en googlemail dot com.
Gracias,
Kostantinos Kougios
Esto es bastante bueno: estoy deseando echarle un vistazo. –
Genial para ver más atención al espacio ORM en Scala nativo. Otra biblioteca que encontré es http://squeryl.org/. Otorga capacidades de estilo .net Linq a sus consultas. – user127386