Fazer consulta por descrição[resolvidooo]

5 respostas
D

ola tudo bem?eu estou tentando fazer consulta por descrição em vez de por código eu ja tentei muda os campos aonde estava código pra descrição mais nao deu certo

como posso fazer isso segue o código abaixo?

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;

import Modelo.Produto;

public class ConsultaProdutos extends JFrame{
private JLabel RotuloBusca, RotuloDescricao,RotuloReferencia,RotuloMarca,RotuloCategoria,RotuloEstoque,RotuloData,RotuloValor;
private JTextField Busca,ResultDescricao,ResultReferencia,ResultMarca,ResultCategoria,ResultEstoque,ResultData,ResultValor;
private JButton Buscar,Fechar;
int Codigo;
private static EntityManagerFactory 
fabricaDeEntidades = null;

private static EntityManager gerenciador =  null;
Produto objetoProduto;

public ConsultaProdutos(EntityManagerFactory e1, EntityManager e2 ){
	super("Buscar");
	setTitle("Pesquisar Produtos");
	fabricaDeEntidades = e1;
	gerenciador = e2;
	
	
	Container tela = getContentPane();
		tela.setLayout(null);
	
		RotuloBusca = new JLabel("Buscar por C\u00F3digo:");
		RotuloDescricao = new JLabel("Descricao");
		RotuloReferencia = new JLabel("Referência");
		RotuloMarca = new JLabel("Marca");
		RotuloCategoria = new JLabel("Categoria");
		RotuloEstoque = new JLabel("Estoque");
		RotuloData = new JLabel("Data");
		RotuloValor = new JLabel("Valor");
		
		Busca = new JTextField();
		ResultDescricao = new JTextField();
		ResultDescricao.setEditable(false);
		ResultReferencia = new JTextField();
		ResultReferencia.setEditable(false);
		ResultMarca = new JTextField();
		ResultMarca.setEditable(false);
		ResultCategoria = new JTextField();
		ResultCategoria.setEditable(false);
		ResultEstoque = new JTextField();
		ResultEstoque.setEditable(false);
		ResultData = new JTextField();
		ResultData.setEditable(false);
		ResultValor = new JTextField();
		ResultValor.setEditable(false);
		
		Buscar = new JButton("Buscar");
		Fechar = new JButton("Fechar");
		
		
//		 coluna, linha, largura, altura
		
		RotuloBusca.setBounds(23,11,120,20);
		Busca.setBounds(137,11,126,20);
		Buscar.setBounds(273,11,72,20);
		
		RotuloDescricao.setBounds(23,82,100,20);
		ResultDescricao.setBounds(86,82,100,20);
		RotuloReferencia.setBounds(23,113,100,20);
		ResultReferencia.setBounds(86, 113, 100, 20);
		RotuloMarca.setBounds(207,82,100,20);
		ResultMarca.setBounds(252, 82, 93, 20);
		RotuloCategoria.setBounds(23,51,100,20);
		ResultCategoria.setBounds(86, 51, 100, 20);
		RotuloEstoque.setBounds(207,113,100,20);
		ResultEstoque.setBounds(267, 113, 78, 20);
		RotuloData.setBounds(23,144,100,20);
		ResultData.setBounds(86, 144, 100, 20);
		RotuloValor.setBounds(207,144,100,20);
		ResultValor.setBounds(252, 144, 93, 20);
		
		Fechar.setBounds(245, 186, 100, 20);
		
		tela.add(RotuloBusca);
		tela.add(Busca);
		tela.add(Buscar);
		tela.add(Fechar);
		tela.add(RotuloDescricao);
		tela.add(RotuloReferencia);
		tela.add(RotuloMarca);
		tela.add(RotuloCategoria);
		tela.add(RotuloEstoque);
		tela.add(RotuloData);
		tela.add(RotuloValor);
		tela.add(ResultDescricao);
		tela.add(ResultReferencia);
		tela.add(ResultMarca);
		tela.add(ResultCategoria);
		tela.add(ResultEstoque);
		tela.add(ResultData);
		tela.add(ResultValor);
		
		
		
		
		Buscar.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e){
						if (Busca.getText().equals("")){
							JOptionPane.showMessageDialog(null, "Informe um código para busca");
						}
						else{
						objetoProduto = 
						gerenciador.find(Produto.class,Integer.parseInt(Busca.getText()));
						
						if(objetoProduto != null ){
						ResultDescricao.setVisible(true);
						ResultDescricao.setEnabled(false);
						ResultReferencia.setVisible(true);
						ResultReferencia.setEnabled(false);
						ResultMarca.setVisible(true);
						ResultMarca.setEnabled(false);
						ResultCategoria.setVisible(true);
						ResultCategoria.setEnabled(false);
						ResultEstoque.setVisible(true);
						ResultEstoque.setEnabled(false);
						ResultData.setVisible(true);
						ResultData.setEnabled(false);
						ResultValor.setVisible(true);
						ResultValor.setEnabled(false);
						
						ResultDescricao.setText(objetoProduto.getDescricao());
						ResultReferencia.setText(objetoProduto.getReferencia());
						ResultMarca.setText(objetoProduto.getMarca());
						ResultCategoria.setText(objetoProduto.getCategoria());
						ResultEstoque.setText(String.valueOf(objetoProduto.getEstoque()));
						ResultData.setText(String.valueOf(objetoProduto.getData()));
						ResultValor.setText(String.valueOf(objetoProduto.getValor()));
						Codigo = objetoProduto.getCodproduto(); 
						}else {
							JOptionPane.showMessageDialog(null,"Nao encontrado");
						}
							
						}
					
					}
									});
		Fechar.addActionListener(
				new ActionListener(){
			public void actionPerformed(ActionEvent e){
			dispose();
			}
		});
		
		
		
		setSize(379, 262);
		setVisible(true);
		setLocationRelativeTo(null);
}

public static void main (String[] args)
{

	fabricaDeEntidades = 
		Persistence.createEntityManagerFactory("TurmaN40PostgreSQL");
				
	gerenciador = fabricaDeEntidades.createEntityManager();

	ConsultaProdutos app = new ConsultaProdutos(fabricaDeEntidades, gerenciador);
	app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
}

}

5 Respostas

Nicolas_Fernandes

Use a pesquisa por Criteria do Hibernate.

D

nao tem uma forma mais facil sem muda esse código ai?

wspinheiro

gerenciador.createQuery( "from produto pr WHERE pr.descricao = :descricao").setParameter("descricao", Busca.getText()).getSingleResult();

To por fora do seu contexto, mas tem algo semelhante a isso para resolver… quem tiver algo mais concreto ajuda ae!

D

eu mudei o código fico assim só que agora ta selecionando mais nao ta dando o resultado da consulta..........

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;

import Modelo.Preco;

public class ConsultaPreco extends JFrame{
private JLabel RotuloBusca, RotuloCodigo, RotuloPrecoVenda,RotuloPrazoEntrega;
private JTextField Busca,ResultCodigo,ResultPrecoVenda,ResultPrazoEntrega;
private JButton Buscar,Fechar;
String nomeproduto;
private static EntityManagerFactory 
fabricaDeEntidades = null;

private static EntityManager gerenciador =  null;
Preco objetoPreco;

public ConsultaPreco(EntityManagerFactory e1, EntityManager e2 ){
	super("Buscar");
	fabricaDeEntidades = e1;
	gerenciador = e2;
	
	
	Container tela = getContentPane();
		tela.setLayout(null);
		
		RotuloBusca = new JLabel("C\u00F3digo do Produto:");
		RotuloCodigo = new JLabel("Nome Produto:");
		RotuloPrecoVenda = new JLabel("Pre\u00E7o de Venda:");
		RotuloPrazoEntrega = new JLabel("Prazo de Entrega:");
		
		Busca = new JTextField();
		ResultCodigo = new JTextField();
		ResultCodigo.setEditable(false);
		ResultPrecoVenda = new JTextField();
		ResultPrecoVenda.setEditable(false);
		ResultPrazoEntrega = new JTextField();
		ResultPrazoEntrega.setEditable(false);
		
		Buscar = new JButton("Buscar");
		Fechar = new JButton("Fechar");
		
		
//		 coluna, linha, largura, altura
		
		RotuloBusca.setBounds(22,22,104,20);
		Busca.setBounds(136,22,100,20);
		Buscar.setBounds(246,22,80,20);
		
		RotuloCodigo.setBounds(22,59,100,20);
		ResultCodigo.setBounds(136,59,100,20);
		RotuloPrecoVenda.setBounds(22,90,100,20);
		ResultPrecoVenda.setBounds(136, 90, 100, 20);
		RotuloPrazoEntrega.setBounds(22,121,100,20);
		ResultPrazoEntrega.setBounds(136, 121, 100, 20);
		
		Fechar.setBounds(136, 167, 100, 20);
		
		tela.add(RotuloBusca);
		tela.add(Busca);
		tela.add(Buscar);
		tela.add(Fechar);
		tela.add(RotuloCodigo);
		tela.add(RotuloPrecoVenda);
		tela.add(RotuloPrazoEntrega);
		tela.add(ResultCodigo);
		tela.add(ResultPrecoVenda);
		tela.add(ResultPrazoEntrega);
		
		
		
		
		Buscar.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e){
						if (Busca.getText().equals("")){
							JOptionPane.showMessageDialog(null, "Informe um código para busca");
						}
						else {
							gerenciador.createQuery(  
			                "from Preco pr WHERE pr.nomeproduto = :nomeproduto").setParameter("nomeproduto", Busca.getText()).getSingleResult(); 

						if(objetoPreco != null ){
						ResultCodigo.setVisible(true);
						ResultCodigo.setEnabled(false);
						ResultPrecoVenda.setVisible(true);
						ResultPrecoVenda.setEnabled(false);
						ResultPrazoEntrega.setVisible(true);
						ResultPrazoEntrega.setEnabled(false);
						
						ResultCodigo.setText(String.valueOf(objetoPreco.getCodpreco()));
						ResultPrecoVenda.setText(String.valueOf(objetoPreco.getPrecovenda()));
						ResultPrazoEntrega.setText(String.valueOf(objetoPreco.getPrazoentrega()));
						nomeproduto = objetoPreco.getNomeproduto(); 
						}else {
							JOptionPane.showMessageDialog(null,"Nao encontrado");
						}
							
						}
					
					}
									});
		Fechar.addActionListener(
				new ActionListener(){
			public void actionPerformed(ActionEvent e){
			dispose();
			}
		});
		
		
		
		setSize(360, 250);
		setVisible(true);
		setLocationRelativeTo(null);
}

public static void main (String[] args)
{

	fabricaDeEntidades = 
		Persistence.createEntityManagerFactory("TurmaN40PostgreSQL");
				
	gerenciador = fabricaDeEntidades.createEntityManager();

	ConsultaPreco app = new ConsultaPreco(fabricaDeEntidades, gerenciador);
	app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
}

}
D

deu certo postando ai pro pessoal que tive a mesma dúvida! como foi resolvido!

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;

import Modelo.Preco;

public class ConsultaPreco extends JFrame{
private JLabel RotuloBusca, RotuloCodigo, RotuloPrecoVenda,RotuloPrazoEntrega;
private JTextField Busca,ResultCodigo,ResultPrecoVenda,ResultPrazoEntrega;
private JButton Buscar,Fechar;
String nomeproduto;
private static EntityManagerFactory 
fabricaDeEntidades = null;

private static EntityManager gerenciador =  null;
Preco objetoPreco;

public ConsultaPreco(EntityManagerFactory e1, EntityManager e2 ){
	super("Buscar");
	fabricaDeEntidades = e1;
	gerenciador = e2;
	
	
	Container tela = getContentPane();
		tela.setLayout(null);
		
		RotuloBusca = new JLabel("Nome Produto:");
		RotuloCodigo = new JLabel("Código do Produto:");
		RotuloPrecoVenda = new JLabel("Pre\u00E7o de Venda:");
		RotuloPrazoEntrega = new JLabel("Prazo de Entrega:");
		
		Busca = new JTextField();
		ResultCodigo = new JTextField();
		ResultCodigo.setEditable(false);
		ResultPrecoVenda = new JTextField();
		ResultPrecoVenda.setEditable(false);
		ResultPrazoEntrega = new JTextField();
		ResultPrazoEntrega.setEditable(false);
		
		Buscar = new JButton("Buscar");
		Fechar = new JButton("Fechar");
		
		
//		 coluna, linha, largura, altura
		
		RotuloBusca.setBounds(22,22,104,20);
		Busca.setBounds(136,22,100,20);
		Buscar.setBounds(246,22,80,20);
		
		RotuloCodigo.setBounds(22,59,100,20);
		ResultCodigo.setBounds(136,59,100,20);
		RotuloPrecoVenda.setBounds(22,90,100,20);
		ResultPrecoVenda.setBounds(136, 90, 100, 20);
		RotuloPrazoEntrega.setBounds(22,121,100,20);
		ResultPrazoEntrega.setBounds(136, 121, 100, 20);
		
		Fechar.setBounds(136, 167, 100, 20);
		
		tela.add(RotuloBusca);
		tela.add(Busca);
		tela.add(Buscar);
		tela.add(Fechar);
		tela.add(RotuloCodigo);
		tela.add(RotuloPrecoVenda);
		tela.add(RotuloPrazoEntrega);
		tela.add(ResultCodigo);
		tela.add(ResultPrecoVenda);
		tela.add(ResultPrazoEntrega);
		
		
		
		
		Buscar.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e){
						if (Busca.getText().equals("")){
							JOptionPane.showMessageDialog(null, "Informe um código para busca");
						}
						else {
							objetoPreco = 
							(Preco) gerenciador.createQuery(  
			                "from Preco pr WHERE pr.nomeproduto = :nomeproduto").setParameter("nomeproduto", Busca.getText()).getSingleResult(); 

						if(objetoPreco != null ){
						ResultCodigo.setVisible(true);
						ResultCodigo.setEnabled(false);
						ResultPrecoVenda.setVisible(true);
						ResultPrecoVenda.setEnabled(false);
						ResultPrazoEntrega.setVisible(true);
						ResultPrazoEntrega.setEnabled(false);
						
						ResultCodigo.setText(String.valueOf(objetoPreco.getCodpreco()));
						ResultPrecoVenda.setText(String.valueOf(objetoPreco.getPrecovenda()));
						ResultPrazoEntrega.setText(String.valueOf(objetoPreco.getPrazoentrega()));
						nomeproduto = objetoPreco.getNomeproduto(); 
						}else {
							JOptionPane.showMessageDialog(null,"Nao encontrado");
						}
							
						}
					
					}
									});
		Fechar.addActionListener(
				new ActionListener(){
			public void actionPerformed(ActionEvent e){
			dispose();
			}
		});
		
		
		
		setSize(360, 250);
		setVisible(true);
		setLocationRelativeTo(null);
}

public static void main (String[] args)
{

	fabricaDeEntidades = 
		Persistence.createEntityManagerFactory("TurmaN40PostgreSQL");
				
	gerenciador = fabricaDeEntidades.createEntityManager();

	ConsultaPreco app = new ConsultaPreco(fabricaDeEntidades, gerenciador);
	app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
}

}
Criado 2 de agosto de 2011
Ultima resposta 3 de ago. de 2011
Respostas 5
Participantes 3