Как связать многозначные атрибуты в LDAP с помощью репозитория Spring - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу получить многозначный атрибут из LDAP, используя репозиторий Spring.

Мой настоящий код выглядит примерно так:

@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;
}

И мой класс репозитория:

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

И когда я пытаюсь получить многозначный атрибут, я могу сделать это только с первой записью.

¿Есть ли способ сделать это сопоставление с аннотацией?

1 Ответ

0 голосов
/ 06 ноября 2019

Решено.

Вместо объявления multiValuedAttr с String[] оно должно быть определено как List<String>

@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> есть методы для добавления элементов безявно увеличивать размер массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...