Metodo Split Duvida [RESOLVIDO]

7 respostas
M

Bom meu crud com o banco de dados está ok…esta inserindo,alterando,gravando…o problema está mesmo no Select.

no mysql a jcomboboxProdutos Selecionava os itens normalmente… mudei para SQL server não seleciona mais
da um erro …o fato é que queria saber qual a diferença??? e como resolver

ERRO
Caused by: java.sql.SQLException: Conversion failed when converting the varchar value '1-Camisa Azul-P' to data type int.


@SuppressWarnings("unchecked")
	@Override
	public void actionPerformed(ActionEvent e) {

		try {

			Session session = factory.openSession();

			List<Estoque> listEstoque = new ArrayList<Estoque>();

			String lista = listEstoque.toString();

			String[] splitComboBox = ((String) jcb_nomeproduto
					.getSelectedItem()).split("-");

			// array = listEstoque.s

			listEstoque = (List<Estoque>) session.createQuery(
					"FROM Estoque Where codigo = '"
							+ jcb_nomeproduto.getSelectedItem().toString()
									.substring(0) + "'").list();
			int tamanho = listEstoque.size();

			for (int i = 0; i < tamanho; i++) {

				Estoque estoque = listEstoque.get(i);
				tf_codprod.setText("" + estoque.getCodigo());
				tf_precounit.setText("" + estoque.getPreco_custo());

				// mostra a quantidade em estoque atual quando seleciona a
				// Combobox
				quantidadequetinha = estoque.getQuantidade();

				System.out.println();
				System.out.println();
				System.out.println(quantidadequetinha);

			}

		} catch (Exception e2) {
			e2.printStackTrace();
		}

	}

7 Respostas

Rafael_Guerreiro

Ajude a gente a te ajudar, poste a stacktrace do erro… Falar que deu um erro não é o suficiente.

M

o ERRO ta ali Dr.

ERRO
Caused by: java.sql.SQLException: Conversion failed when converting the varchar value ‘1-Camisa Azul-P’ to data type int.

Rafael_Guerreiro

A stacktrace geralmente vem com mais informações além do Caused by.

Mas esse Caused By não está te ajudando? Você tem um valor como INT e está tentando trazer um VARCHAR. A coluna é a que vc está colocando essa informação: ‘1-Camisa Azul-P’.

Provavelmente o problema está aqui (não sei aonde deu o erro pq não colocou a stacktrace toda):

listEstoque = (List&lt;Estoque&gt;) session.createQuery(  
                    "FROM Estoque Where codigo = '"  
                            + jcb_nomeproduto.getSelectedItem().toString()  
                                    .substring(0) + "'").list();

Não seria:

listEstoque = (List&lt;Estoque&gt;) session.createQuery("FROM Estoque Where codigo = " + splitComboBox[0]).list();
M

Sim é isso mesmo…é que é o seguinte…como estou usando Hibernate não vem o codigo completo…
mas eu tava me perdendo na logica mesmo …to fazendo varias coisas ao mesmo tempo…

M

Mas é isso ai resolvido

Rafael_Guerreiro

O correto seria você fazer:

listEstoque = session.createQuery("FROM Estoque Where codigo = :code").setInteger("code", (int) splitComboBox[0]).list();

Acredito que esse atributo codigo seja o ID de Estoque, e por isso só vai trazer 1 registro. Se isso for verdade, você pode fazer tranquilamente:

Estoque e = session.get(Estoque.class, (int) splitComboBox[0]);
M

Sim. exato…era erro de logica mesmo

Criado 12 de maio de 2014
Ultima resposta 12 de mai. de 2014
Respostas 7
Participantes 2