Tag: siena

如何使用@OneToMany集合进行分页

假设我有一个Post实体和一个Comment实体以及一对多的关系: @Entity class Post { … @OneToMany List comments; … } 我怎样才能实现这样的分页: Post post = //Find the post. return post.getComments().fetch(100, 10); // Find the 11th page (page size 10); 是否可以在JPA之上使用@OneToMany集合模拟动态分页,还是我们必须完全重写JPA的关联机制? (例如,创建一个可以管理分页,排序和搜索的PersistentList集合类型)。 PS:我最近发现了Play! 框架在JPA:Siena之上使用了一个非常有趣的库。 Siena非常易于使用,并且在JPA / Hibernate之上是一个很好的抽象。 但我找不到如何使用其关联进行分页。 更新: Play框架具有类似于Django的查询语法: Post.findAll().from(100).fetch(10); // paging 哪里 Post.findAll() 将返回一个JPAQuery对象,一个Play中的自定义查询类型。 但是有关联的集合,例如: Post.comments 将只返回一个List,它不支持分页或其他查询。 我想知道如何扩展它,所以 Post.comments 还将返回一个JPAQuery对象或类似的东西,然后你可以查询“查询”集合: Post.comments.from(100).fetch(10); 或插入新的评论而不实际获取任何评论: Post.comments.add(new Comment(…)); […]

Ebean或锡耶纳有多成熟?

在上一次我听到很多关于hibernate的抱怨。 事实上,我对hibernate也有一些痛苦的经历。 所以我读到了Ebean和锡耶纳 。 两者都有有趣的方法。 不幸的是,数据库访问层很容易编写,但是如果你的项目增长并且你必须处理好的数据库表,你就会知道它们是否好。 所以评估这样一个工具真的很难。 Hibernate是众所周知的,你可以肯定你可以解决它的问题。 有时你需要学习很多,但你可以解决它。 Ebean怎么样? 有没有真实的应用程序? 支持哪些数据库? 它可靠吗? 在搜索了一下后,我发现有更多的ORM框架,那么至少有一个可靠的框架吗?

如何在Google App Engine Java上减少Appstats的内存使用量

这与Java Appengine APPSTATS问题导致java内存不足错误有关 。 Appstats似乎在128MB实例上导致java.lang.OutOfMemoryError,我想知道是否有办法减少日志记录量。 有没有办法从堆栈跟踪中过滤一些包名? GAE API: @14ms memcache.Get real=7ms api=0ms Stack: com.google.appengine.tools.appstats.Recorder:290 makeAsyncCall() com.google.apphosting.api.ApiProxy:184 makeAsyncCall() com.google.apphosting.api.ApiProxy:123 makeAsyncCall() com.google.appengine.api.memcache.MemcacheServiceApiHelper:104 makeAsyncCall() com.google.appengine.api.memcache.AsyncMemcacheServiceImpl:372 doGetAll() com.google.appengine.api.memcache.AsyncMemcacheServiceImpl:333 getIdentifiables() com.google.appengine.api.memcache.MemcacheServiceImpl:61 getIdentifiables() 我的appplication API: com.googlecode.objectify.cache.EntityMemcache:215 getAll() com.googlecode.objectify.cache.CachingAsyncDatastoreService:253 get() com.googlecode.objectify.cache.CachingDatastoreService:161 get() com.googlecode.objectify.cache.CachingDatastoreService:147 get() com.googlecode.objectify.cache.CachingDatastoreService:128 get() siena.gae.GaePersistenceManager:231 getByKey() siena.Model:106 getByKey() com.sirtrack.iridium.model.GroupEntity:147 getByKey() com.sirtrack.iridium.task.ProjectUpdateTask:49 doPost() 无关紧要的: javax.servlet.http.HttpServlet:637 service() javax.servlet.http.HttpServlet:717 service() org.mortbay.jetty.servlet.ServletHolder:511 handle() org.mortbay.jetty.servlet.ServletHandler$CachedChain:1166 […]