MapStruct Construtores Ambiguous

Olá pessoal!

Estou enfrentando um problema ao utilizar a biblioteca do MapStruct. Possuo um record que recebe um Long no parâmetro, porém quando vou utilizar o map struct para mapear duas classes ele reclama que não consegue saber qual dos construtores do Long ele deve usar. Foi uma breve explicação, vou deixar meus fontes aqui embaixo para um entendimento melhor, caso tenha faltado alguma informação me sinalize que eu adiciono aqui, desde já agradeço turma!

IdClient.java

public record IdClient(Long id) { }

ClientEntity.java

@Table(name = "client") @Builder 

public record ClientEntity(Long idClient){}

ClientMapper.java

@ApplicationScoped public interface ClientMapper {

ClientEntity IdClientToClientEntity(IdClient id);
Long map(IdClient id);
}

Erro retornado pela aplicação:

Ambiguous constructors found for creating java.lang.Long: Long(long), Long(java.lang.String). Either declare parameterless constructor or annotate the default constructor with an annotation named @Default.

Precisa realmente mapear o IdClient para Long?
Só assim, não resolve seu problema?

@Mapper
public interface ClientMapper {

    @Mapping(target = "idClient", source = "id")
    ClientEntity idClientToClientEntity(IdClient id);
}

Eu consegui fazer funcionar mapeando pela annotation mapping dessa forma
@Mapping(target = "idClient", source = "idClient.id")
Porém como é um record do tipo Long e minha entidade espera um Long fico com duvida se não possa haver forma melhor de resolver isso, por isso o motivo do meu questionamento.

Se você realmente precisa de um mapping para Long, talvez isso resolva:

    @org.mapstruct.BeforeMapping
    default Long map(IdClient id) {
        return id.getId();
    }

Nessa abordagem ele não indica o mapeamento do meu record para o idClient da entidade. O trecho do erro abaixo.

Can't map property "IdClient idClient" to "Long idClient". Consider to declare/implement a mapping method: "Long map(IdClient value)".

Acredito que você teria que apontar a propriedade do objeto para que o mapeamento funcione como esperado!

Exemplo:

@Mapper
public interface ClientMapper {

    @Mapping(target = "idClient", source = "idClient.id")
    ClientEntity idClientToClientEntity(IdClient idClient);

}