如何使用 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>
有方法可以添加元素而不显式增加数组大小。
我想使用 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>
有方法可以添加元素而不显式增加数组大小。