我想了解选择使用Record,{{用例,优势和不便的内容在Mapper应用程序中使用3}}甚至两者。
当我尝试:
时出现了这个问题我将这些用例仅用于记录。你可以用更一般的方式回答。
答案 0 :(得分:16)
在升降机升降之前,Mapper一直是Lift的一部分。它是数据库和Scala之间简单的“Active Record”风格桥梁。我根据这里概述的想法构建了Mapper: http://web.archive.org/web/20070303054927/http://blog.lostlake.org/index.php?/archives/19-Keeping-the-meaning-with-the-bytes.html
Mapper与JDBC以及关系数据库密切相关。 Mapper有一个合理的机制来构建简单的查询,但对于复杂的东西,人们必须手写SQL。
Mapper虽然坚固但很苛刻。
Record是后备存储和Scala之间更通用的抽象。它在“用字节保持意义”中概述的思想实施较弱......而且很少有人注意或关心。
有MongoDB,CouchDB,Squeryl和其他存储机制的Record实现。写一个新的后端是几天的工作。
记录有很多“异常”,每个后端都有自己的怪癖。目前的唱片所有者已开始批量重构Record。
除非你使用MongoDB后端,否则我认为Record或Mapper不会给你“开箱即用”的树状结构,在这种情况下,你的树结构将基于JSON文档而不是关系。
答案 1 :(得分:2)
嗯,Mapper和Record库只是Lift应用程序中数据库访问的不同抽象。记录是较新的记录,有一天会被视为替代Mapper。目前,Record支持CouchDB和MongoDB等NoSQL数据库。如果您的数据模型适合NoSQL世界,请尝试Record。否则,您可以将Mapper与典型的关系数据库结合使用。
我希望能为你提到一些有趣的观点。