gpt4 book ai didi

Spring Data DomainClassConverter 不起作用(与 Java Config 结合使用)

转载 作者:行者123 更新时间:2023-12-05 00:33:09 74 4
gpt4 key购买 nike

我正在尝试设置 Spring Data/JPA DomainClassConverter 以自动将(字符串)id 转换为域类本身。

我的项目使用 Java Config(所以没有 xml)。

在我的 WebConfig 中,我目前有:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new DomainClassConverter<DefaultFormattingConversionService>((DefaultFormattingConversionService) registry));
}
}

这似乎成功连接了 DomainClassConverter,因为我在打印时可以在转换服务中看到它:
ConversionService converters =
..<default converters>..
org.springframework.data.repository.support.DomainClassConverter@6ea4ce0d, org.springframework.core.convert.support.IdToEntityConverter@5d3f03b, org.springframework.core.convert.support.ObjectToObjectConverter@1d40b47a

但是当提交嵌套表单(带有客户引用的订单)时,客户不会自动转换,因此我得到:
Failed to convert property value of type java.lang.String to required type org.mycomp.domain.Customer for property customer; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.mycomp.domain.Customer] for property customer: no matching editors or conversion strategy found

我想知道我是否在这里做错了什么?

最佳答案

DomainClassConverter应该声明为一个 bean(因为它是 ApplicationContextAware),并且它在 ConversionService 中注册自己自动,所以你不需要手动注册:

@Bean @Autowired
public DomainClassConverter domainClassConverter(ConversionService cs) {
return new DomainClassConverter(cs);
}

关于Spring Data DomainClassConverter 不起作用(与 Java Config 结合使用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421485/

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