telefono play numero framework español app web-applications scala lift

web-applications - numero - playframework java



¿Cuándo usar Mapper o grabar en Lift? (2)

Bueno, las bibliotecas Mapper y Record son solo abstracciones diferentes para el acceso a la base de datos en las aplicaciones de Lift. Record es el más nuevo y se considera que sustituye a Mapper un día. Por el momento, Record admite bases de datos NoSQL como CouchDB y MongoDB. Si su modelo de datos se ajusta al mundo NoSQL, intente Grabar. De lo contrario, puede usar Mapper en conexión con una base de datos relacional típica.

Espero mencionar algunos puntos interesantes para ti.

Me gustaría entender cuáles son los casos de uso , ventajas e inconvenientes de elegir usar Record , Mapper o incluso ambos, en una aplicación de Liftweb .

Esta pregunta surgió cuando intenté:

  • crear una estructura similar a un árbol para las clases modelo
  • crear una estructura parecida a un árbol similar para la representación de las clases en una página
  • asegúrese de que diferentes clases en el árbol puedan estar en diferentes estados al mismo tiempo. Uno está en el estado EDITAR o CREAR y el otro en el estado VISUALIZAR, por ejemplo.
  • las clases modelo se pueden crear, leer o guardar en un servicio web RESTful que ya está funcionando.

Estoy poniendo los casos de uso aquí solo para el registro. Puedes responder de una manera más general.


Mapper ha sido parte de Lift antes de que Lift was Lift. Es un simple puente de estilo "Active Record" entre la base de datos y Scala. Creé Mapper en base a las ideas resumidas aquí: http://web.archive.org/web/20070303054927/http://blog.lostlake.org/index.php?/archives/19-Keeping-the-meaning-with- the-bytes.html

Mapper está íntimamente ligado a JDBC y, por lo tanto, a las bases de datos relacionales. Mapper tiene un mecanismo razonable para crear consultas simples, pero para cosas complejas uno tiene que escribir a mano SQL.

Mapper es sólido pero rudo.

Record es una abstracción más genérica entre Backing Store y Scala. Tiene implementaciones más débiles de las ideas descritas en "Mantener el significado con los bytes" ... y muy pocas personas lo notan o les importa.

Existen implementaciones de registro para MongoDB, CouchDB, Squeryl y otros mecanismos de almacenamiento. Escribir un nuevo back-end es de unos pocos días de trabajo.

Record tiene muchas "anomalías" y cada back end tiene sus propias peculiaridades. El propietario actual del Disco se ha embarcado en una refacturación mayorista de Record.

No creo que Record o Mapper te proporcionen estructuras tipo árbol "listas para usar" a menos que uses el backend de MongoDB y en ese caso, las estructuras de tus árboles estarán basadas en documentos JSON en lugar de relaciones.