我对Morphia有些问题。 有人能帮助我吗?
我在Spring + MongoDB上写关于电影和名人的网络项目。 我有实体类类型:
@Entity(value="genres")
public class Genre implements IGenre {
@Id
@Indexed
private ObjectId id;
@Indexed
private String name;
private String description;
private long quantity;
private Set <IMovie> movies;
//getters and setters
}
实体类电影:
@Entity(value="movies")
public class Movie implements IMovie {
@Id
@Indexed
private ObjectId id;
@Indexed
private String originalTitle;
private String year;
private Set <IGenre> genres;
// getters and setters
}
我有30种类型。例如其中一个:喜剧。 我还有25万部喜剧。 现在我想通过流派=喜剧来做电影分页。 如何才能从所有喜剧中获得20条记录。 如果我使用@Embedded或@Reference注释,我仍然会立即获得整个列表。在控制器中使用它很重要。
答案 0 :(得分:0)
我对Mongo不太熟悉,但看起来你需要在这里实现自定义查询。无论你做什么,你都需要为你的页面开始,以及页面大小(在你的情况下为20)。
您可以通过在查询中组合.offset(page_start)和.limit(page_size)来在Morphia中进行分页。首先,您将创建一个查询以获取属于某种类型的电影,然后应用分页。
看起来它是使用Spring http://static.springsource.org/spring-data/data-mongodb/docs/1.0.0.RELEASE/reference/html/#repositories.special-parameters
中的存储库处理的您使用Pageable实现来传递分页数据,而不必担心自己进行偏移和限制调用。这是&#34; Web分页的一个例子&#34;进一步在文档中。
希望这有帮助!