gpt4 book ai didi

spring - 使用带有 Grails Validateable 注释的 Spring LdapTemplate 时缺少转换器

转载 作者:行者123 更新时间:2023-12-02 14:41:38 24 4
gpt4 key购买 nike

我在 Grails 应用程序中使用 Spring LDAP ( docs ) 库。我有一个用 @Entry 注释注释的类,因此它被映射到 LDAP 服务器。这一切都非常漂亮。

但是,当我添加 Grails @Validateable 注释(以启用与 Grails 域类类似的验证 LDAP 类)并尝试从 LDAP 检索数据(即 LdapUserRepo 上的 findAll 操作或类似操作)时,我得到以下异常:
消息:缺少从类 java.lang.String 到接口(interface) org.springframework.validation.Errors 的转换器,这是条目类 com.ldap.portal.LdapUser 上的字段错误所必需的

基本上,@Validateable 注释执行的 AST 转换似乎在 LdapUser 对象上产生了额外的字段(即错误字段)。似乎 Spring LDAP 在处理 @Entry 逻辑时假定了 fields 属性的默认映射(可能将其解释为 LDAP 对象上的字符串字段)。当它从 LDAP 服务器获取任何信息时,它会尝试将 ValidationErrors 类型的字段设置为 String 类型的值——一个空字符串。

我在 github 上做了一些查找,发现 this code这似乎相关,可能支持我的理论。

我的问题是:注释是否会出现这种行为,如何防止一个注释添加的字段被另一个注释不恰本地处理?

最佳答案

目前,我针对特定问题提出的最佳解决方法是将错误字段添加到我的 LdapUser 对象并将其标记为 transient (以便 LDAP 忽略它):

@Transient
ValidationErrors errors

关于spring - 使用带有 Grails Validateable 注释的 Spring LdapTemplate 时缺少转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com