Fórum Problema no botão excluir usando hibernate #444194
28/05/2013
0
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
Curtir tópico
+ 0Posts
28/05/2013
Rafael Benetti
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
28/05/2013
Andreiv Araújo
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
28/05/2013
Andreiv Araújo
Gostei + 0
29/05/2013
Rafael Benetti
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
29/05/2013
Andreiv Araújo
Gostei + 0
29/05/2013
Rafael Benetti
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
Clique aqui para fazer login e interagir na Comunidade :)