Problemas no grid, janela Locacao

3 respostas
E

Bom dia Galera,

estou com um grande problema, tenho um grid dentro da minha janela Locação, nele eu coloco os filmes que estão sendo locados,
o problema é que na 1º vez que carrega hibernate com o "create", eu cadastro o cliente, cadastro o filme, quando vou para a tela de locaçao
coloco o nome do cliente, o filme, quando aperto o botao para inserir no grid, apaga o registro do cliente e do filme, muito estranho,
porque depois se eu mudar para update não da esse problema.

segue o código:

package views;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumn;



import Beans.cliente_locadora;
import Beans.filme_locadora;
import Beans.locacao_locadora;
import Conexao.JpaUtil;


	@SuppressWarnings("serial")
	public class JanelaLocacao extends JFrame{ 

		SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
	  	JLabel rotulo1, rotulo2, rotulo3, rotulo4, rotulo5, rotulo6, rotulo9, rotulo10;
	   	JLabel rotulo7, rotulo8;
	   	JButton cadastrar, fechar, alterar, excluir, consultar, limpar;	
	   	JTextField cod_locacao, cod_cli, cod_filme, data_locacao, titulo, desconto;
	    JTextField data_devolucao, valor, quantidade; 
		JFormattedTextField data;
		private JScrollPane scrollPane;
		private JTable tabela;
		private JButton visualizarButton;
		private JLabel nomeLabel;
		private JLabel codigoLabel;
		private JTextField nomeField;
		private JTextField codigoField;
		
		
		class TableModelLocacao extends AbstractTableModel {
			private static final long serialVersionUID = 1L;

			private List<filme_locadora> filme_locadora;
			private String[] colunas = { "Código", "Titulo", "Genero" };
			private int colSize[] = { 50, 80, 210};

			public int getColumnCount() {
				return colunas.length;
			}

			public int getRowCount() {
				if (filme_locadora == null) {
					return 0;
				}

				return filme_locadora.size();
			}

			public Object getValueAt(int rowIndex, int columnIndex) {
				filme_locadora filme = filme_locadora.get(rowIndex);

				switch (columnIndex) {
				case 0:
					return filme.getCod_filme();
				case 1:
					return filme.getTitulo();
				case 2:
					return filme.getGenero();
				default:
					return null;
				}
			}

			public Class<?> getColumnClass(int columnIndex) {
				if (columnIndex == 2) {
					if (filme_locadora != null && !filme_locadora.isEmpty()) {
						return getValueAt(0, columnIndex).getClass();
					}
				}

				return super.getColumnClass(columnIndex);
			}

			@Override
			public String getColumnName(int column) {
				return colunas[column];
			}

			public void setColumnsWidth() {
				for (int i = 0; i < colSize.length; i++) {
					TableColumn tableColumn = tabela.getColumnModel().getColumn(i);
					tableColumn.setPreferredWidth(colSize[i]);
					tableColumn.setMinWidth(colSize[i]);
				}
			}

			public void addItem(filme_locadora filme) {
				if (filme_locadora == null) {
					filme_locadora = new ArrayList<filme_locadora>();
				}

				filme_locadora.add(filme);

				tabela.updateUI();
			}

			public filme_locadora getItem(int index) {
				return filme_locadora.get(index);
			}

			public void setItems(List<filme_locadora> list) {
				filme_locadora = list;

				tabela.updateUI();
			}

			public List<filme_locadora> getItems() {
				return filme_locadora;
			}

			public void removeItem(int index) {
				if (filme_locadora != null) {
					filme_locadora.remove(index);
				}

				tabela.updateUI();
			}

			public void removeItem(Object o) {
				if (filme_locadora != null) {
					filme_locadora.remove(o);
				}

				tabela.updateUI();
			}

			public void removeAll() {
				filme_locadora = null;

				tabela.updateUI();
			}
		}
private void buscarAction() {
			TableModelLocacao modelLocacao = (TableModelLocacao) tabela.getModel();
			
			
		
			List<filme_locadora> filme_locadora;   
			
			filme_locadora = buscarFilmePorParametros(Integer.parseInt(cod_filme.getText()), titulo.getText());   

			
			
			if (filme_locadora != null && !filme_locadora.isEmpty()) {
				
				for (filme_locadora filme_locadora2 : filme_locadora) {
					modelLocacao.addItem(filme_locadora2);
				}
				
				tabela.setRowSelectionInterval(0, 0);
				tabela.requestFocus();
			} else {
				JOptionPane.showMessageDialog(null, "Cai no else!");
				desconto.requestFocus();
			}
		}

		@SuppressWarnings("unchecked")
		public List<filme_locadora> buscarFilmePorParametros(Integer cod_filme, String titulo) {
			EntityManager em = JpaUtil.getEntityManager();

			List<filme_locadora> filme = new ArrayList<filme_locadora>();

			StringBuilder jpql = new StringBuilder("SELECT p FROM filme_locadora p WHERE p.cod_filme IS NOT NULL");//("SELECT p FROM cliente_locadora p WHERE p.cod_cli = ? OR p.nome_cli LIKE ?" );

			if (cod_filme != null && !cod_filme.equals("")) {
				jpql.append(" AND p.cod_filme = " + cod_filme);
				
			}
			
			

			else {
				JOptionPane.showMessageDialog(null, "Entrei no String!");
				jpql.append(" AND p.titulo =" +titulo );
				
			}
			
			
				
			

			try {
				
				Query query = em.createQuery(jpql.toString());
				filme = query.getResultList();
			} catch (Exception e) {
				JOptionPane.showMessageDialog(null, "Cai no erro!");
				e.printStackTrace();
			}

			return filme;
		}

3 Respostas

nel

Olá amigo, tudo bom?

Poste sua classe de criação e update?
Abraços.

E

ola nel, tudo bem e vc

seria uma dessas duas?

package Beans;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import static javax.persistence.GenerationType.SEQUENCE;

@Entity

public class cliente_locadora {
	@Id
    @GeneratedValue(strategy=SEQUENCE,generator = "geradorCliente")
	@SequenceGenerator(name="geradorCliente", sequenceName = "geradorCliente", allocationSize=1)

	
	
	private int cod_cli;
	private String nome_cli;
	private String datanascimento;
	private String cpf;
	private String rg;
	private String orgao_exp;
	private String data_exp;
	private String fone_residencial;
	private String fone_comercial;
	private String celular;
	private String profissao;
	private String dep_nome;
	
	public int getCod_cli() {
		return cod_cli;
	}
	public void setCod_cli(int cod_cli) {
		this.cod_cli = cod_cli;
	}
	public String getNome_cli() {
		return nome_cli;
	}
	public void setNome_cli(String nome_cli) {
		this.nome_cli = nome_cli;
	}
	public String getDatanascimento() {
		return datanascimento;
	}
	public void setDatanascimento(String datanascimento) {
		this.datanascimento = datanascimento;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public String getRg() {
		return rg;
	}
	public void setRg(String rg) {
		this.rg = rg;
	}
	public String getOrgao_exp() {
		return orgao_exp;
	}
	public void setOrgao_exp(String orgao_exp) {
		this.orgao_exp = orgao_exp;
	}
	public String getData_exp() {
		return data_exp;
	}
	public void setData_exp(String data_exp) {
		this.data_exp = data_exp;
	}
	public String getFone_residencial() {
		return fone_residencial;
	}
	public void setFone_residencial(String fone_residencial) {
		this.fone_residencial = fone_residencial;
	}
	public String getFone_comercial() {
		return fone_comercial;
	}
	public void setFone_comercial(String fone_comercial) {
		this.fone_comercial = fone_comercial;
	}
	public String getCelular() {
		return celular;
	}
	public void setCelular(String celular) {
		this.celular = celular;
	}
	public String getProfissao() {
		return profissao;
	}
	public void setProfissao(String profissao) {
		this.profissao = profissao;
	}
	public String getDep_nome() {
		return dep_nome;
	}
	public void setDep_nome(String dep_nome) {
		this.dep_nome = dep_nome;
	}
	

	
	
	
}

ou essa
[code]

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">

org.hibernate.ejb.HibernatePersistence
Beans.cliente_locadora
Beans.funcionario_locadora
Beans.filme_locadora
Beans.locacao_locadora
Beans.devolver_filme











[b]

E

nel, consegui achar o problema
era essa parte do código EntityManager em = JpaUtil.getEntityManager();
Muito obrigado…

Criado 26 de novembro de 2009
Ultima resposta 26 de nov. de 2009
Respostas 3
Participantes 2