Problema no botão excluir usando hibernate
Através de uma tabela, clico duas vezes sobre um registro contido nela e ele vai para a tela de cadastro, mostrando todos os dados. Nessa aba, tenho um botão remover... Quando clico não dá nenhum erro, mas também não exclui. O que posso fazer? Sou grato por qualquer ajuda!
JButton btnRemover = new JButton("Remover");
btnRemover.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\delete.png"));
btnRemover.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
if(arg0.getClickCount() == 2){
int linha = table.getSelectedRow();
if(linha != -1) {
int idSelecionado = (Integer) table.getValueAt(linha, 0);
EntityManager manager = EntityManagerUtil.getManager();
manager.getTransaction().begin();
Empresa em = manager.find(Empresa.class, idSelecionado);
if(em != null) {
Empresa empresa = manager.find(Empresa.class, idSelecionado);
Endereco e = manager.find(Endereco.class, idSelecionado);
manager.remove(em);
manager.remove(e);
System.out.println(em.getNome());
tabbedPane.setSelectedIndex(0);
} else {
System.out.println("empresa não selecionada");
}
manager.getTransaction().commit();
manager.close();
} else {
System.out.println("nenhuma linha");
}
} else{
System.out.println("qtd click: " + arg0.getClickCount() );
}
}
}Andreiv Araújo
Curtidas 0
Respostas
Rafael Benetti
28/05/2013
Vode nao quer postar a tua Classe JFrame e os Services ou DAO (nao sei como voce esta fazendo)
do services o dao se puder passar os metodos principais(eliminar)
ai eu posso ter uma visao maior de que problema voce pode estar tendo...
depois de eliminar voce ja tentou entrar no JFrame e os dados continuao la???
abracos!!!
do services o dao se puder passar os metodos principais(eliminar)
ai eu posso ter uma visao maior de que problema voce pode estar tendo...
depois de eliminar voce ja tentou entrar no JFrame e os dados continuao la???
abracos!!!
GOSTEI 0
Andreiv Araújo
28/05/2013
package br.com.andreiv.jobs.gui;
import java.awt.EventQueue;
public class TelaEmpresas extends JInternalFrame {
private JTextField txtNome;
private JTextField txtCnpj;
private JTextField txtRamo;
private JTextField txtEmail;
private JTextField txtTelefone;
private JTextField txtRua;
private JTextField txtNumero;
private JTextField txtCidade;
private JTextField txtBairro;
private JTextField txtEstado;
private JTextField txtPais;
private JTabbedPane tabbedPane;
private JTable table;
private JTextField txtId;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TelaEmpresas frame = new TelaEmpresas();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TelaEmpresas() {
setClosable(true);
setTitle("Manuten\u00E7\u00E3o de Empresas");
setFrameIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\building_add.png"));
setBounds(100, 100, 502, 412);
tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent arg0) {
if(tabbedPane.getSelectedIndex() == 1){
Query query = EntityManagerUtil.getManager().createQuery("SELECT em FROM Empresa em");
List <Empresa> empresas = query.getResultList();
EmpresasTableModel modelo = (EmpresasTableModel) table.getModel();
modelo.limpar();
for(Empresa em : empresas) {
modelo.adiconarEmpresa(em);
}
}
}
});
getContentPane().add(tabbedPane, BorderLayout.CENTER);
JPanel panel = new JPanel();
tabbedPane.addTab("Dados Cadastrais", null, panel, null);
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Dados Empresariais", TitledBorder.LEADING, TitledBorder.TOP, null, Color.DARK_GRAY));
JLayeredPane layeredPane_1 = new JLayeredPane();
layeredPane_1.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Endere\u00E7o", TitledBorder.LEADING, TitledBorder.TOP, null, Color.DARK_GRAY));
JButton btnSalvar = new JButton("Salvar");
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
EntityManagerFactory factory =
Persistence.createEntityManagerFactory("jobsDB");
EntityManager manager = factory.createEntityManager();
manager.getTransaction().begin();
Endereco e = new Endereco();
e.setRua(txtRua.getText());
e.setNumero(txtNumero.getText());
e.setBairro(txtBairro.getText());
e.setCidade(txtCidade.getText());
e.setEstado(txtEstado.getText());
e.setPais(txtPais.getText());
Empresa em = new Empresa();
em.setNome(txtNome.getText());
em.setCnpj(txtCnpj.getText());
em.setRamo(txtRamo.getText());
em.setTelefone(txtTelefone.getText());
em.setEmail(txtEmail.getText());
em.setEndereco(e);
manager.merge(em);
manager.getTransaction().commit();
manager.close();
factory.close();
}catch(Exception erro)
{
erro.printStackTrace();
}
}
});
btnSalvar.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\disk.png"));
JButton button_2 = new JButton("Novo");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//Empresa
txtNome.setText("");
txtCnpj.setText("");
txtRamo.setText("");
txtTelefone.setText("");
txtEmail.setText("");
//Endereço
txtRua.setText("");
txtNumero.setText("");
txtBairro.setText("");
txtCidade.setText("");
txtEstado.setText("");
txtPais.setText("");
}
});
button_2.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\new.png"));
JButton btnRemover = new JButton("Remover");
btnRemover.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\delete.png"));
btnRemover.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
if(arg0.getClickCount() == 2){
int linha = table.getSelectedRow();
if(linha != -1) {
int idSelecionado = (Integer) table.getValueAt(linha, 0);
EntityManager manager = EntityManagerUtil.getManager();
manager.getTransaction().begin();
Empresa em = manager.find(Empresa.class, idSelecionado);
if(em != null) {
Empresa empresa = manager.find(Empresa.class, idSelecionado);
Endereco e = manager.find(Endereco.class, idSelecionado);
manager.remove(em);
manager.remove(e);
System.out.println(em.getNome());
tabbedPane.setSelectedIndex(0);
} else {
System.out.println("empresa não selecionada");
}
manager.getTransaction().commit();
manager.close();
} else {
System.out.println("nenhuma linha");
}
} else{
System.out.println("qtd click: " + arg0.getClickCount() );
}
}
});
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addGap(18)
.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
.addComponent(layeredPane_1, 0, 0, Short.MAX_VALUE)
.addComponent(layeredPane, GroupLayout.PREFERRED_SIZE, 443, GroupLayout.PREFERRED_SIZE))
.addGap(20))
.addGroup(gl_panel.createSequentialGroup()
.addGap(66)
.addComponent(btnSalvar, GroupLayout.DEFAULT_SIZE, 109, Short.MAX_VALUE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(button_2, GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(btnRemover, GroupLayout.DEFAULT_SIZE, 109, Short.MAX_VALUE)
.addGap(73))
);
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addContainerGap()
.addComponent(layeredPane, GroupLayout.PREFERRED_SIZE, 144, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(layeredPane_1, GroupLayout.PREFERRED_SIZE, 151, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(button_2, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
.addComponent(btnSalvar, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
.addComponent(btnRemover))
.addGap(12))
);
JLabel label_5 = new JLabel("Rua:");
label_5.setBounds(10, 23, 46, 14);
layeredPane_1.add(label_5);
txtRua = new JTextField();
txtRua.setColumns(10);
txtRua.setBounds(10, 36, 331, 20);
layeredPane_1.add(txtRua);
JLabel label_6 = new JLabel("N\u00FAmero:");
label_6.setBounds(354, 23, 66, 14);
layeredPane_1.add(label_6);
txtNumero = new JTextField();
txtNumero.setColumns(10);
txtNumero.setBounds(354, 36, 78, 20);
layeredPane_1.add(txtNumero);
JLabel label_7 = new JLabel("Cidade:");
label_7.setBounds(228, 60, 46, 14);
layeredPane_1.add(label_7);
txtCidade = new JTextField();
txtCidade.setColumns(10);
txtCidade.setBounds(228, 75, 204, 20);
layeredPane_1.add(txtCidade);
JLabel label_8 = new JLabel("Bairro:");
label_8.setBounds(10, 60, 46, 14);
layeredPane_1.add(label_8);
txtBairro = new JTextField();
txtBairro.setColumns(10);
txtBairro.setBounds(10, 75, 208, 20);
layeredPane_1.add(txtBairro);
JLabel label_9 = new JLabel("Estado:");
label_9.setBounds(10, 100, 46, 14);
layeredPane_1.add(label_9);
txtEstado = new JTextField();
txtEstado.setColumns(10);
txtEstado.setBounds(10, 115, 208, 20);
layeredPane_1.add(txtEstado);
JLabel label_10 = new JLabel("Pa\u00EDs:");
label_10.setBounds(228, 100, 46, 14);
layeredPane_1.add(label_10);
txtPais = new JTextField();
txtPais.setColumns(10);
txtPais.setBounds(228, 115, 204, 20);
layeredPane_1.add(txtPais);
JLabel label = new JLabel("Nome:");
label.setBounds(50, 27, 46, 14);
layeredPane.add(label);
txtNome = new JTextField();
txtNome.setColumns(10);
txtNome.setBounds(50, 42, 384, 20);
layeredPane.add(txtNome);
JLabel label_1 = new JLabel("CNPJ:");
label_1.setBounds(10, 64, 46, 14);
layeredPane.add(label_1);
txtCnpj = new JTextField();
txtCnpj.setColumns(10);
txtCnpj.setBounds(10, 78, 153, 20);
layeredPane.add(txtCnpj);
JLabel label_2 = new JLabel("Ramo de Mercado:");
label_2.setBounds(173, 64, 134, 14);
layeredPane.add(label_2);
txtRamo = new JTextField();
txtRamo.setBounds(173, 78, 261, 20);
layeredPane.add(txtRamo);
txtRamo.setColumns(10);
JLabel label_3 = new JLabel("E-mail:");
label_3.setBounds(173, 99, 46, 14);
layeredPane.add(label_3);
txtEmail = new JTextField();
txtEmail.setColumns(10);
txtEmail.setBounds(173, 113, 261, 20);
layeredPane.add(txtEmail);
JLabel label_4 = new JLabel("Telefone:");
label_4.setBounds(10, 99, 60, 14);
layeredPane.add(label_4);
txtTelefone = new JTextField();
txtTelefone.setColumns(10);
txtTelefone.setBounds(10, 113, 153, 20);
layeredPane.add(txtTelefone);
JLabel lblId = new JLabel("ID:");
lblId.setBounds(10, 25, 20, 18);
layeredPane.add(lblId);
txtId = new JTextField();
txtId.setEditable(false);
txtId.setBounds(10, 42, 30, 20);
layeredPane.add(txtId);
txtId.setColumns(10);
panel.setLayout(gl_panel);
JPanel panel_1 = new JPanel();
tabbedPane.addTab("Relatórios", null, panel_1, null);
JScrollPane scrollPane = new JScrollPane();
GroupLayout gl_panel_1 = new GroupLayout(panel_1);
gl_panel_1.setHorizontalGroup(
gl_panel_1.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_1.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 451, Short.MAX_VALUE)
.addContainerGap())
);
gl_panel_1.setVerticalGroup(
gl_panel_1.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_1.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 266, GroupLayout.PREFERRED_SIZE)
.addContainerGap(78, Short.MAX_VALUE))
);
table = new JTable();
table.setModel(new EmpresasTableModel());
table.getColumnModel().getColumn(0).setPreferredWidth(36);
table.getColumnModel().getColumn(1).setPreferredWidth(137);
table.getColumnModel().getColumn(2).setPreferredWidth(92);
table.getColumnModel().getColumn(3).setPreferredWidth(110);
table.getColumnModel().getColumn(4).setPreferredWidth(111);
scrollPane.setViewportView(table);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
if(arg0.getClickCount() == 2){
int linha = table.getSelectedRow();
if(linha != -1) {
int idSelecionado = (Integer) table.getValueAt(linha, 0);
EntityManager manager = EntityManagerUtil.getManager();
manager.getTransaction().begin();
Empresa em = manager.find(Empresa.class, idSelecionado);
if(em != null) {
//Empresa
txtId.setText(""+em.getId());
txtNome.setText(em.getNome());
txtCnpj.setText(em.getCnpj());
txtRamo.setText(em.getRamo());
txtTelefone.setText(em.getTelefone());
txtEmail.setText(em.getEmail());
//Endereço
txtRua.setText(em.getEndereco().getRua());
txtNumero.setText(em.getEndereco().getNumero());
txtBairro.setText(em.getEndereco().getBairro());
txtCidade.setText(em.getEndereco().getCidade());
txtEstado.setText(em.getEndereco().getEstado());
txtPais.setText(em.getEndereco().getPais());
System.out.println(em.getNome());
tabbedPane.setSelectedIndex(0);
} else {
System.out.println("empresa não selecionada");
}
manager.getTransaction().commit();
manager.close();
} else {
System.out.println("nenhuma linha");
}
} else{
System.out.println("qtd click: " + arg0.getClickCount() );
}
}
});
panel_1.setLayout(gl_panel_1);
}
}
package br.com.andreiv.jobs.gui;
import java.awt.BorderLayout;
public class TelaPrincipal extends JFrame {
private JPanel contentPane;
private JDesktopPane desktop;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TelaPrincipal frame = new TelaPrincipal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TelaPrincipal() {
setResizable(false);
setIconImage(Toolkit.getDefaultToolkit().getImage("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\user_suit.png"));
setTitle("Sistema para RH Jobs Employment");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 800, 600);
JMenuBar MenuPrincipal = new JMenuBar();
setJMenuBar(MenuPrincipal);
JMenu mnCadastrar = new JMenu("Cadastrar");
mnCadastrar.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\add.png"));
MenuPrincipal.add(mnCadastrar);
JMenuItem mntmVagas = new JMenuItem("Vagas");
mntmVagas.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
new TelaVagas().show();
}
});
JMenuItem mntmEmpresa = new JMenuItem("Empresas");
mntmEmpresa.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\building.png"));
mntmEmpresa.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
TelaEmpresas tela = new TelaEmpresas();
desktop.add(tela);
tela.setVisible(true);
}
}
);
mnCadastrar.add(mntmEmpresa);
JSeparator separator_4 = new JSeparator();
mnCadastrar.add(separator_4);
mntmVagas.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\book.png"));
mnCadastrar.add(mntmVagas);
JSeparator separator_1 = new JSeparator();
mnCadastrar.add(separator_1);
JMenuItem mntmCandidatos = new JMenuItem("Candidatos");
mntmCandidatos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
TelaCandidatos tela = new TelaCandidatos();
desktop.add(tela);
tela.setVisible(true);
}
});
mntmCandidatos.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\user.png"));
mnCadastrar.add(mntmCandidatos);
JSeparator separator_2 = new JSeparator();
mnCadastrar.add(separator_2);
JMenuItem mntmCurrculos = new JMenuItem("Curr\u00EDculos");
mntmCurrculos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
new TelaCurriculos().show();
}
});
mntmCurrculos.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\page.png"));
mnCadastrar.add(mntmCurrculos);
JSeparator separator_3 = new JSeparator();
mnCadastrar.add(separator_3);
JMenuItem mntmCursos = new JMenuItem("Cursos");
mntmCursos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
new TelaCursos().show();
}
});
mntmCursos.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\folder.png"));
mnCadastrar.add(mntmCursos);
JMenu mnSair = new JMenu("Sair");
mnSair.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\door_out.png"));
mnSair.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
System.exit(0);
}
});
MenuPrincipal.add(mnSair);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout());
desktop = new JDesktopPane();
contentPane.add(desktop, BorderLayout.CENTER);
JLabel label = new JLabel("");
label.setIcon(new ImageIcon("D:\\Documentos\\JAVA\\Projetos Eclipse\\JobsEmp\\Imagens\\Sem T\u00EDtulo-1.jpg"));
label.setBounds(-11, 0, 791, 541);
desktop.add(label);
}
}
package br.com.andreiv.jobs.gui;
import javax.swing.table.DefaultTableModel;
import br.com.andreiv.jobs.bean.Empresa;
public class EmpresasTableModel extends DefaultTableModel{
public EmpresasTableModel() {
super(new Object[][] {}, new String[] {"Id", "Nome", "CNPJ", "Rua", "Telefone"});
}
public void adiconarEmpresa(Empresa em){
Object[] linha = new Object[5];
linha[0] = em.getId();
linha[1] = em.getNome();
linha[2] = em.getCnpj();
linha[3] = em.getEndereco().getRua();
linha[4] = em.getTelefone();
addRow(linha);
}
public void limpar() {
setNumRows(0);
}
@Override
public boolean isCellEditable(int arg0, int arg1) {
return false;
}
}
GOSTEI 0
Andreiv Araújo
28/05/2013
Aí cara, o JInternal Frame, o JFrame Princiapal e a classe table Model! Se poder me ajudar, agradeço! Caso aja necessidade de mais algum código, pode falar! Estou usando o Entity (Sem DAO).
GOSTEI 0
Rafael Benetti
28/05/2013
voce ja tentou colocar
um commit depois de eliminar igual voce fez para salvar???
ou tentar fazer assim...
Caso nao der certo de novo tenta fazer assim...
Desculpa se estou sendo muito basico...meu conhecimento nao e tao grande assim...
mas acredito que primeiro voce elimina o endereco de depois a Empresa...
para nao ter problemas con chaves primarias...
d tem que dar certinho cara!!!
espero poder estar de ajudando!!!
um commit depois de eliminar igual voce fez para salvar???
ou tentar fazer assim...
ep = enderco que voce quer eliminar...
Endereco e = manager.merge(ep);
manager.remove(e);
Caso nao der certo de novo tenta fazer assim...
String query = "DELETE FROM Empresa empresa " + " WHERE empresa.id = ?1 " ;
Query qr = createQuery(query, idEmpresa);
return qr.executeUpdate();
ed = endereco que voce quer eliminar...
Endereco e = manager.merge(ed);
manager.remove(e);
Desculpa se estou sendo muito basico...meu conhecimento nao e tao grande assim...
mas acredito que primeiro voce elimina o endereco de depois a Empresa...
para nao ter problemas con chaves primarias...
d tem que dar certinho cara!!!
espero poder estar de ajudando!!!
GOSTEI 0
Andreiv Araújo
28/05/2013
Tentarei aqui cara! Muito obrigado!
GOSTEI 0
Rafael Benetti
28/05/2013
Me avisa se der certo...!!!
depois se voce quiser eu tenho varias video aulas sobre Hibernate uma do prof Neri.. se quiser posso te passar.. e aqui na devmedia tem um muito bom tbm com o prof Luiz parace que o nome dele!!!
os dois sao muito bom o Neri te ensida mais bascio soh que de uma forma simples de aprender... voce ja pode por em pratica o da devmedia ja eh mais profissional ai seria bom ter um conhecimento basico(fica 10)..
espero pder ajudar ficarei muito grato!!!
abracos!!!
depois se voce quiser eu tenho varias video aulas sobre Hibernate uma do prof Neri.. se quiser posso te passar.. e aqui na devmedia tem um muito bom tbm com o prof Luiz parace que o nome dele!!!
os dois sao muito bom o Neri te ensida mais bascio soh que de uma forma simples de aprender... voce ja pode por em pratica o da devmedia ja eh mais profissional ai seria bom ter um conhecimento basico(fica 10)..
espero pder ajudar ficarei muito grato!!!
abracos!!!
GOSTEI 0