Eu fiquei na dúvida sobre como o TypeConverters sabe que método exatamente ele deve usar, pois podemos marcar vários métodos diferentes com a anotação TypeConverter.
Eu imagino que seja no momento do mapeamento, que identifica que o objeto Prova tem um atributo complexo (Calendar) que o banco de dados não consegue trabalhar, e busca dentre os seus TypeConverters um método que receba por parâmetro um atributo igual ao que ele precisa converter, no caso o Calendar, e que retorne um tipo que ele consiga trabalhar, e no retorno de uma lista de provas um método inverso.
Mas não tenho certeza como isso funciona, porque dei uma olhada na documentação dessas duas anotações, e não encontrei uma resposta para essa dúvida.
Alguém que saiba como a anotação TypeConverters realiza esse trabalho e que possa tirar essa dúvida?