LdapRepository 更新 spring-ldap
LdapRepository update spring-ldap
Spring 当我尝试更新 LDAP 数据库中的现有对象时,LdapRepository save() 方法抛出异常。
org.apache.directory.api.ldap.model.exception.LdapEntryAlreadyExistsException: ERR_250_ENTRY_ALREADY_EXISTS
我应该使用什么方法来更新现有的 ldap 对象?
人 class:
@Entry(objectClasses = { "inetOrgPerson", "organizationalPerson", "person", "top" })
public class Person implements Serializable {
public Person() {
}
@Id
private Name dn;
@Attribute(name = "cn")
@DnAttribute(value = "cn")
@JsonProperty("cn")
private String fullName;
@Attribute(name = "uid")
private String uid;
private String mail;
@Attribute(name = "sn")
private String surname;
//setters and getters
}
个人回购界面:
public interface PersonRepo extends LdapRepository<Person> {
}
这就是我更新人员的方式:
personRepo.save(person);
Spring LDAP 存储库的默认实现是 SimpleLdapRepository,它检查用 @Id
注释的 属性 以确定对象是否是 new - 并执行创建,或 old - 并执行更新。
我猜当您尝试执行更新时 Person.dn
是 null
。
您也可以通过实现 org.springframework.data.domain.Persistable
并将您的逻辑放在 isNew()
方法中来控制它。
Spring 当我尝试更新 LDAP 数据库中的现有对象时,LdapRepository save() 方法抛出异常。
org.apache.directory.api.ldap.model.exception.LdapEntryAlreadyExistsException: ERR_250_ENTRY_ALREADY_EXISTS
我应该使用什么方法来更新现有的 ldap 对象?
人 class:
@Entry(objectClasses = { "inetOrgPerson", "organizationalPerson", "person", "top" })
public class Person implements Serializable {
public Person() {
}
@Id
private Name dn;
@Attribute(name = "cn")
@DnAttribute(value = "cn")
@JsonProperty("cn")
private String fullName;
@Attribute(name = "uid")
private String uid;
private String mail;
@Attribute(name = "sn")
private String surname;
//setters and getters
}
个人回购界面:
public interface PersonRepo extends LdapRepository<Person> {
}
这就是我更新人员的方式:
personRepo.save(person);
Spring LDAP 存储库的默认实现是 SimpleLdapRepository,它检查用 @Id
注释的 属性 以确定对象是否是 new - 并执行创建,或 old - 并执行更新。
我猜当您尝试执行更新时 Person.dn
是 null
。
您也可以通过实现 org.springframework.data.domain.Persistable
并将您的逻辑放在 isNew()
方法中来控制它。