Spring BeanUtil.copyProperties 无法记录

Spring BeanUtil.copyProperties not work for record

BeanUtils.copyProperties 复制记录失败

public record ServiceCodeAndNameDomain(String serviceCode, String serviceName) {}

异常

java.lang.NoSuchMethodException: xxx.ServiceCodeAndNameDomain.<init>()

环境 jdk:17.0.1 弹簧启动:2.6.6

我知道 copyProperties 依赖于无参数构造函数,但在记录中,它必须是所有参数构造函数

谁能告诉我这种情况下的最佳做法是什么?

参考@user16320675 的评论,我考虑通过以下方式提供 cross-type 属性副本

public record ServiceCodeAndNameDomain(String serviceCode, String serviceName) {

    public static ServiceCodeAndNameDomain of(ServiceRegistry entity){
        return new ServiceCodeAndNameDomain(entity.getServiceCode(),entity.getServiceName());
    }
}

不知道有没有更好的做法