2016-04-06 83 views
0

任何機構都可以幫助我如何使用springldap從LDAP中找到一些記錄。如何在Spring ldap中使用跳過值進行分頁

我的問題是,我創建了一個休息服務,它接受一些參數。一個是抵消,另一個是限制。如果我的ldap服務器有500條記錄,偏移參數會轉義某些記錄。 現在,如果我給偏移值1和LIMIT是100.那麼它應該給ldap的前100條記錄。 如果我給出偏移值100並且LIMIT是100,那麼它應該在來自ldap的前100條記錄之後給出100條記錄。 如果我給出偏移值50並且LIMIT是10,那麼它應該在來自ldap的前50條記錄之後給出10條記錄。

我被困在如何在春季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中找出最大記錄。但我無法設置參數或任何其他方式從一開始就逃脫一些記錄。

回答

0

您最好的選擇是使用虛擬列表視圖請求控件(鏈接到specification),也稱爲VLV。請注意,要使用VLV,您需要在LDAP服務器上進行配置更改(我假設您使用OpenDJ,它支持VLV)。

在此forum處有一個具有VLV請求控制的JNDI LDAP提供程序的代碼示例。

相關問題