用SimpleDS解决Google AppEngine的持久层

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/5558224 用...
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/5558224

SimpleDS 解决 Google AppEngine 的持久层

Posted by:chszs     Posted on: May 05 2010

 

SimpleDS GAE Google App Engine )提供了一个极其简洁的持久化框架。它仅仅是在数据存储 API 上封装了一层,提供了实体和 Java 类之间的映射。

GAE 提供了一个非常强大的服务功能,可以在云上持久化数据,但是它本身提供的 API 来处理持久化则显得很麻烦:

·数据存储 API 太面向底层了,直接暴露出映射样式的结构;

· JDO JPA API 对于完成简单的任务来说,过于复杂,而且为关系数据库增加了大量额外的检查设计影响了性能。

SimpleDS 的最新版本为 1.0 RC1 ,它提供了以下功能:

·支持一级缓存、二级缓存;

·后台任务突破了 GAE 30 秒限制;

·优化功能:通过把 n +1 次查询转换成两次查询,与缓存进行组合使得性能提高;

·可使用 SimpleDS 注释或 JPA 注释进行驱动的配置;

·支持内嵌类;

·支持‘ == ’,‘ < ’,‘ <= ’,‘ > ’,‘ >= ’,‘ IN ’,‘ != ’,‘ like ’等操作符;

·支持分页查询和游标;

·支持事务处理等。

处理实体的例子:

// JPA retrieve by key Model m1 = entityManager.find(Model.class, key); Model m2 = entityManager.find(Model.class, key2); // SimpleDS retrieve by key Model m1 = entityManager.get(key); List<Model> l = entityManager.get(key1, key2); // JPA persist changes entityManager.merge(m1); entityManager.persist(m2); // SimpleDS persist changes entityManager.put(m1); entityManager.put(l); Model m3 = new Model(); entityManager.put(parentKey, m3); // JPA remove Model m1 = entityManager.find(Model.class, key); entityManager.remove(m1); // SimpleDS remove entityManager.remove(key1, key2, key3);

查询的例子:

// JPA Query query = entityManager.createQuery( "select m from Model m where m.createdAt<=?1 and m.createdBy=?" ); query.setParameter(1, new Date()); query.setParameter(2, userKey); return query.getResultList(); // SimpleDS SimpleQuery query = new SimpleQuery(Model.class) .lessThanOrEqual("createdAt", new Date()) .equal("createdBy", userKey); return entityManager.find(query); // retrieve just keys entityManager.find(query.keysOnly()); // with limits entityManager.find(query.withOffset(10).withLimit(100));

 

 

目录
相关文章
|
Java 缓存 存储
用SimpleDS解决Google AppEngine的持久层
用 SimpleDS 解决 Google AppEngine 的持久层 Posted by:chszs     Posted on: May 05 2010   SimpleDS 为 GAE ( Google App Engine )提供了一个极其简洁的持久化框架。
802 0
|
8月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2798 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
8月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
111 0
|
8月前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
173 0
|
8月前
|
编解码
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
92 0
|
8月前
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
319 0
|
8月前
|
传感器 编解码 数据处理
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
154 0
|
8月前
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
146 0
|
8月前
|
编解码 定位技术
Google Earth Engine(GEE)——导出后的影像像素不同于原始Landsat影像的分辨率(投影差异)
Google Earth Engine(GEE)——导出后的影像像素不同于原始Landsat影像的分辨率(投影差异)
251 0
|
8月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
261 0

热门文章

最新文章