Iniciante - Capturar/Setar Conteudo de um Campo em um Bean - SEM usar Gets/Sets

Boa tarde,

estou iniciando em Java, e me deparei com um problema que para vcs deve ser fácil de resolver:

estou usando hibernate com Jpa usando annotations.

estou acessando uma tabela chamada cadastro. este é meu código:

    Session session = NewHibernateUtil.getSession();
    session.beginTransaction();
    Query query = session.createQuery("from Cadastro");
    Iterator ci = query.iterate();
    cadastro = (Cadastro) ci.next();

agora posso acessar todos os campos da minha classe através de:
// captura campos
cadastro.getCodigo();
cadastro.getNome();

    // seta campos
    cadastro.setCodigo(4);
    cadastro.setNome("TESTE JAVA");                                 

Ok. tudo sem problemas até aqui.

o que quero é algo equivalente , um método ou algo como:

   cadastro.getCampo("CODIGO");
   cadastro.getCampo("NOME");

   cadastro.setCampo("CODIGO",1);
   cadastro.setCampo("NOME","TESTE JAVA");

ou seja “algo” que me retorne/sete o conteúdo através do NOME do campo…

sei que poderia criar os métodos dentro do meu bean Cadastros tipo:
public Object getCampo(String campo){

}

e lá colocar um switch ou varios ifs para testar o parâmetro passado…
mas acho que deve haver uma forma mais elegante para isso… e com bem menos escrita de codigo, além do mais para cada bean criado teria que criar estes metódos e testar cada campo atraves do parametro passado, imagine 30 campos !!!

resumindo : preciso de “Algo” que me retorne/sete o conteudo de um campo atraves do NOME do CAMPO em si, não pelos sets/gets dos Beans.
obrigado

Olá

Porque você está  querendo fazer isso, não seria interessante enviar esse objeto persistente para a camada de cima!?
A não ser que seja seu VO, mas precisa ver qual sua estrutura se vai trafegar seu objeto e manupilar bastante e necessita
  de cópias para alguns lugares. Se caso não precise pode utilizar o próprio objeto persistente.

Veja alguns link’s = Link1, Link2.

Mas se realmente precisa fazer um clone deste objeto, existe um jeito de clonar objeto, veja neste link

Qualquer dúvida estamos aqui
Espero ter ajudado
Flwsss

Obrigado pela a ajuda Tiago.

Mas pesquisando na NET, descobri uma forma que se aproximou muito do que desejo:

usando reflection.

tipo:

Method metodo = cadastro.getClass().getMethod(“setNome” , String.class);
metodo.invoke(cadastro, new Object[]{“NOVO NOME”});

obrigado pela atenção