如何使用 Spring 存储库在 LDAP 中绑定多值属性

How to bind multi-valued attributes in LDAP using Spring repository

我想使用 Spring 存储库从 LDAP 检索多值属性。

我的实际代码是这样的:

@Entry(objectClasses = { "class1", "class2" }, base="ou=my_base_dn")
public final class MyLdapEntity {

    @Id
    private Name dn;

    @Attribute(name="name")
    private String name;

    @Attribute(name="sureName")
    private String sureName;

    @Attribute(name="multiValuedAttr")
    private String[] multiValuedAttr;
}

还有我的存储库 class:

@Repository
public interface MyLdapRepository extends CrudRepository<MyLdapEntity, Long> {
}

当我尝试获取多值 attr 时,我只能使用第一个条目。

¿有没有办法用注释来做这个映射?

已解决。

必须将 List<String>

定义为 List<String>

而不是用 String[] 声明 multiValuedAttr
@Entry(objectClasses = { "class1", "class2" }, base="ou=my_base_dn")
public final class MyLdapEntity {

    @Id
    private Name dn;

    @Attribute(name="name")
    private String name;

    @Attribute(name="sureName")
    private String sureName;

    @Attribute(name="multiValuedAttr")
    private String[] multiValuedAttr;
}

可能是因为 List<String> 有方法可以添加元素而不显式增加数组大小。