ConversionService na Primavera

Estou seguindo esse esquema em um aplicativo Spring.

A solicitação é enviada ao servidor com o ID do objeto e alguns outros parâmetros a serem preenchidos nesse objetoO objeto com esse ID é carregado no banco de dadosgetters e setters são chamados neste objeto para preencher os valoreso objeto é então armazenado

Eu pergunteiessa outra pergunta qual foi a melhor maneira de preparar o objeto antes de preencher os parâmetros da solicitação. A resposta foi que a melhor maneira era usar umserviço de conversão em vez de fazê-lo no método anotado @ModelAtribute ou com um editor no initBinder.

Então, tentei usar um conversor, mas não encontrei um exemplo semelhante e estou um pouco preso. Escrevi um código como o abaixo: No fichário init, registro o serviço de conversão. Portanto, antes de preencher os valores no método User object, o método convert () é chamado para carregar o objeto no banco de dados. O problema é que essa configuração não funciona porque está convertendo o ID (campo nome de usuário) do Usuário do Objeto em um Usuário do Objeto, mas tenta criar um setUsername () com o objeto, para obter um "java.lang .IllegalArgumentException: incompatibilidade de tipo de argumento ".

Alguém pode me dar uma pista ou um exemplo da maneira de usar o ConversionService para obter o comportamento desejado?

Obrigado.

@Autowired
private ConversionService conversionService;

@InitBinder("user")
public void initBinder(@RequestParam("username")String username, WebDataBinder binder){
    binder.setConversionService(conversionService);
}

@RequestMapping(value="/user/save", method=RequestMethod.POST)
public String save(@ModelAttribute("user") User user, Model model) {        
    ...
}

com algo como:

@Component
public class UserConversionService implements ConversionService{
    ...        
    @Override
    public Object convert(Object name, TypeDescriptor arg1, TypeDescriptor arg2) {
        return userService.find((String)name); 
    }
}

questionAnswers(2)

yourAnswerToTheQuestion