我的服务器端代码运行在Dart上,目前通过客户端使用Redis作为数据存储。
大多数情况下,我是在持久化原始数据类型,如整数和字符串。但是,我也有一些业务对象,比如用户,理想情况下,我也希望将这些对象存储在Redis中。
当然,Redis是一个键值存储库,而不是像MongoDB这样成熟的文档数据库。因此,我开始编写自己的序列化和持久性逻辑,例如,为用户编写一个简单的getter。
import 'dart:convert';
...
Future<User> GetUser(String userGuid)
{
var userKey = "userGuid:" + userGuid.toString();
return redisClient.get(userKey).then((String value) {
return new User.fromJSON(value);
});
}在我继续手工操作之前--为我的所有业务实体构建整个持久性逻辑--我应该知道有某种Redis/ data数据访问包存在吗,类似于orm (Ruby)?
如果没有,我可能会写我自己的。
(我不想称它为ORM,因为,Redis != relational但实际上这就是我要找的)
发布于 2014-02-10 17:24:27
我们在工作中使用Java Hibernate + Dart,
我为客户端创建了一个开源库:https://github.com/frankpepermans/dorm
然而,服务器端的实现不是开源的,Hibernate不是一个要求,任何ORM类型都可以,客户机通过JSON进行通信,因此您需要一个适配器来处理/接收循环引用(通过Dorm,您可以使用JSON结构中的指针来指定循环引用)。
服务器还需要生成代表实体的Dart类文件。
但是,您可以有例如:-组合键-实体继承-数据类型的自定义处理(即DateTime) -自定义数据类型(即一切都是可观察的,列表默认为ObservableList,但您可以告诉反序列化程序在需要时使用自定义列表类型)-支持注释。
https://stackoverflow.com/questions/21613205
复制相似问题