Bom dia pessoal, preciso inserir no banco alguns registro vindos de um arquivo xml e estou com problema em popular meus objetos para inseri-los
EX: tenho a classe Cabecalho
[code]public class Cabecalho {
private IdentificacaoTransacao identificacaoTransacao;
private Origem origem;
private Destino destino;
private String versaoPadrao;
private IdentificacaoSoftwareGerador identificacaoSoftwareGerador;
[/code]
[code]try {
XStream xstream = new XStream(new Dom4JDriver());
xstream.processAnnotations(MensagemSIB.class);
BufferedReader input = new BufferedReader(new FileReader("c:\\fileTeste.xml"));
MensagemSIB bl = (MensagemSIB) xstream.fromXML(input);
Cabecalho cabecalho = bl.getCabecalho();
Cabecalho c = new Cabecalho();
//NESTA LINHA ACUSA O ERRO
c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao().getTipoTransacao());
ConectaBanco con = new ConectaBanco();
boolean retorno = con.insereCabecalho(c);
if (retorno = true) {
System.out.println("Dados gravados com sucesso!");
} else {
System.out.println("Houve erro ao salvar!");
}
[/code]
Este é o erro
http://img38.imageshack.us/img38/9867/erromt.jpg
oque posso fazer?
c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao().getTipoTransacao());
Vendo bem por cima parece que vc precisa de um obejto da classe IdentificacaoTransacao nesse set ? não seria só
c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao()); ?
Acho que nao pois em minha classe cabecalho ja contem ele
no metodo setIdentificacaoTransacao()? qual tipo de objeto ele recebe ?
e no getTipoTransacao() q tipo de objeto ele retorna ?
Retorna uma String mas o probema nao eh o retorno e sim as dependencias eu acho
e no set oq recebe ?
no erro acho q fala de conversão citando a String e o tipo do objeto que deveria ser passado como argumento.
c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao().getTipoTransacao());
Necessário:
IdentificacaoTransacao
Encontrado:
String
é o que o jalonso falou,
você esta passando uma string onde deveria receber um objeto do tipo IdentificacaoTransacao
Voce tem alguma dica de como posso fazer isso então???
Sem conhecer mais a fundo o programa é dificil, mas chutando creio que se você simplemente fizer isso pode ser que funcione
c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao());
Já tentei desta maneira, erro não da mas oque acontece eu preciso buscar três atributos que estão em IdentificacaoTransacao e se fizer assim ele não sabe qual eu quero e da erro na hora de inserir no banco.
chame os métodos get do objeto passado.
public void setIdentificacaoTransacao(IdentificacaoTransacao it){
String atributo1 = it.getTipoTransacao();
}
Muito obrigado aqui funcionou
Pelo q notei vc esta precisando passar o tipo de transacao para a sua classe ConectaBanco. Para que isso aconteca vc deveria declarar uma variavel String para receber o conteudo final de getTipoTransacao() que por sinal e uma String. Ai sim passar essa variavel String como parametro para o metodo inserirCabecalho(), e nao tentar setar uma variavel Cabecalho em seu setIdenticacao() como String, que e o que vc esta fazendo. Outra solucao seria encurtar o caminho e passar direto para con.inserirCabecalho(cabecalho.getIdentificacaoTransacao().getTipoTrgetTipoTransacao());
Falou
Robson