如何使用跳过值在spring ldap中分页

时间:2016-04-06 10:57:20

标签: java spring-ldap opendj

任何正文都可以帮助我如何使用springldap从LDAP中找到一些记录。

我的问题是,我创建了一个休息服务,它接受了一些参数。一个是抵消,另一个是限制。偏移参数转义一些记录,如果我的ldap服务器有500条记录。 现在如果我给出偏移值1并且LIMIT是100.那么它应该从ldap给出前100条记录。 如果我给出偏移值100并且LIMIT是100,那么它应该在ldap的前100条记录之后给出100条记录。 如果我给出偏移值50并且LIMIT是10,那么它应该在ldap的前50条记录之后给出10条记录。

我坚持如何在spring ldap模板中设置偏移值。我设置了限制值,它工作正常。

我正在分享代码的和平。

public OrganisationGroups getOrganisationGroup() 
{

    SearchControls controls = new SearchControls();

    controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    controls.setCountLimit(MAXIMUM_SEARCH_GROUP_COUNT);
    AndFilter filter = new AndFilter();
    filter.and(new EqualsFilter("objectclass", "groupOfUniqueNames"));
    List<OrganisationGroup> organisationGroup = ldapTemplate.search("", filter.toString(), controls, new GroupSearchMapper());

    OrganisationGroups groups = new OrganisationGroups();
    groups.setOrganisationGroup(organisationGroup);
    groups.setCount(organisationGroup.size());
    return groups;
}

在这段代码中,我设置了MAXIMUM_SEARCH_GROUP_COUNT变量,以便从ldap中找出最大记录。但我无法设置参数或任何其他方式从一开始就逃避一些记录。

1 个答案:

答案 0 :(得分:0)

您最好的选择是使用虚拟列表视图请求控件(链接到specification),也称为VLV。请注意,要使用VLV,您需要在LDAP服务器上进行配置更改(我假设您使用的是支持VLV的OpenDJ)。

forum处有一个带有VLV请求控制的JNDI LDAP提供程序的代码示例。