文档库 最新最全的文档下载
当前位置:文档库 › GAE的持久化框架SimpleDS

GAE的持久化框架SimpleDS



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



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

* 支持一级缓存、二级缓存;
* 后台任务突破了 GAE 的 30 秒限制;
* 优化功能:通过把 n +1 次查询转换成两次查询,与缓存进行组合使得性能提高;
* 可使用 SimpleDS 注释或 JPA 注释进行驱动的配置;
* 支持内嵌类;
* 支持‘ == ’,‘ < ’,‘ <= ’,‘ > ’,‘ >= ’,‘ IN ’,‘ != ’,‘ like ’等操作符;
* 支持分页查询和游标;
* 支持事务处理;
* ……

handle entities:
Java代码

1. // JPA retrieve by key
2. Model m1 = entityManager.find(Model.class, key);
3. Model m2 = entityManager.find(Model.class, key2);
4.
5. // SimpleDS retrieve by key
6. Model m1 = entityManager.get(key);
7. List l = entityManager.get(key1, key2);
8.
9. // JPA persist changes
10. entityManager.merge(m1);
11. entityManager.persist(m2);
12.
13. // SimpleDS persist changes
14. entityManager.put(m1);
15. entityManager.put(l);
16. Model m3 = new Model();
17. entityManager.put(parentKey, m3);
18.
19. // JPA remove
20. Model m1 = entityManager.find(Model.class, key);
21. entityManager.remove(m1);
22.
23. // SimpleDS remove
24. entityManager.remove(key1, key2, key3);

// 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 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);



queries:
Java代码

1. // JPA
2. Query query = entityManager.createQuery(
3. "select m from Model m where m.createdAt<=?1 and m.createdBy=?"
4. );
5. query.setParameter(1, new Date());
6. query.setParameter(2, userKey);
7. return query.getResultList();
8.
9. // SimpleDS
10. SimpleQuery query = new SimpleQuery(Model.class)
11. .lessThanOrEqual("createdAt", new Date())
12. .equal("createdBy", userKey);
13. return entityManager.find(query);
14.
15. // retrieve just keys
16. entityManager.find(query.keysOnly());
17.
18. // with limits
19. entityManager.find(query.withOffset(10).withLimit(100));

// 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));



点击查看详情:https://www.wendangku.net/doc/d67118579.html,/p/simpleds/

相关文档
相关文档 最新文档