2016-04-06 8 views
0

springldapを使用してLDAPからレコードを検索する方法を教えてください。スキップ値を使用して春のLDAPでページを設定する方法

私の問題は、私は休憩サービスを作成し、いくつかのパラメータを受け入れることです。 1つはオフセットされ、もう1つはリミットです。オフセットパラメータは、私の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; 
} 

私は、LDAPから最大レコードを見つけるためにMAXIMUM_SEARCH_GROUP_COUNT変数が設定されています。しかし、私はいくつかのレコードを最初からエスケープするためのパラメータやその他の方法を設定することはできません。

答えて

0

VLVとしても知られているバーチャルリストビューのリクエストコントロール(specificationへのリンク)を使用することをお勧めします。 VLVを使用するには、LDAPサーバーの設定を変更する必要があります(OpenDJを使用していることを前提としています(VLVをサポートしています)。

VLV要求コントロールがこのforumのJNDI LDAPプロバイダのコード例があります。

関連する問題