No guarda datos en la base de datos

Que tengo mal que no me guarda el registro en la base de datos, adjunte el error

Esto en el JInternalFrame

  1. //
  2. //
  3. package guarderia;
  4.  
  5. import entidades.Departamentos;
  6. import entidades.Empleados;
  7. import hibernate.mapeos.HibernateUtil;
  8. import hibernate.mapeos.dao.DepartamentosDAO;
  9. import java.util.List;
  10. import javafx.scene.control.ChoiceBox;
  11. import javax.swing.JComboBox;
  12. import javax.swing.JOptionPane;
  13. import javax.swing.table.DefaultTableModel;
  14. import javax.swing.table.TableColumn;
  15. import org.hibernate.Criteria;
  16. import org.hibernate.HibernateException;
  17. import org.hibernate.Session;
  18. import org.hibernate.Transaction;
  19.  
  20.  
  21. public class VDepartamento extends javax.swing.JInternalFrame {
  22.  
  23.     Session sesion;
  24.     private Transaction tx;
  25.     DepartamentosDAO departamentodao;
  26.     Departamentos  departamento;
  27.     Empleados empleado;
  28.     List<Empleados> resulsetDepartamentos;
  29.    
  30.     public VDepartamento() {
  31.         initComponents();
  32.         this.setTitle("Departamentos");
  33.         this.cbxManager.removeAllItems();
  34.         bloquearBotonesEdicion();
  35.         bloquear();
  36.         updateTabla();
  37.     }
  38.    public void desbloquearBotonesEdicion(){
  39.         btnGuardar.setEnabled(true);
  40.         btnLimpiar.setEnabled(true);
  41.         btnBuscar.setEnabled(true);
  42.         btnNuevo.setEnabled(false);
  43.         btnEditar.setEnabled(false);
  44.         btnEliminar.setEnabled(false);
  45.         btnCancelar.setEnabled(true);
  46.     }
  47.    
  48.     public void bloquearBotonesEdicion(){
  49.         btnGuardar.setEnabled(false);
  50.         btnLimpiar.setEnabled(false);
  51.         btnBuscar.setEnabled(false);
  52.         btnNuevo.setEnabled(true);
  53.         btnEditar.setEnabled(true);
  54.         btnEliminar.setEnabled(true);
  55.         btnCancelar.setEnabled(false);
  56.     }
  57.     /**
  58.      * This method is called from within the constructor to initialize the form.
  59.      * WARNING: Do NOT modify this code. The content of this method is always
  60.      * regenerated by the Form Editor.
  61.      */
  62.     @SuppressWarnings("unchecked")
  63.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  64.     private void initComponents() {
  65.  
  66.         jPanel1 = new javax.swing.JPanel();
  67.         jPanel2 = new javax.swing.JPanel();
  68.         jLabel1 = new javax.swing.JLabel();
  69.         jLabel2 = new javax.swing.JLabel();
  70.         jLabel3 = new javax.swing.JLabel();
  71.         lblID = new javax.swing.JLabel();
  72.         txtDepartamento = new javax.swing.JTextField();
  73.         cbxManager = new javax.swing.JComboBox();
  74.         btnCancelar2 = new javax.swing.JButton();
  75.         jPanel3 = new javax.swing.JPanel();
  76.         jScrollPane1 = new javax.swing.JScrollPane();
  77.         tblDepartamentos = new javax.swing.JTable();
  78.         jPanel4 = new javax.swing.JPanel();
  79.         btnNuevo = new javax.swing.JButton();
  80.         btnEditar = new javax.swing.JButton();
  81.         btnGuardar = new javax.swing.JButton();
  82.         btnEliminar = new javax.swing.JButton();
  83.         btnLimpiar = new javax.swing.JButton();
  84.         btnBuscar = new javax.swing.JButton();
  85.         btnCancelar = new javax.swing.JButton();
  86.  
  87.         setClosable(true);
  88.         setIconifiable(true);
  89.         getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
  90.  
  91.         jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
  92.  
  93.         jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
  94.  
  95.         jLabel1.setText("Codigo:");
  96.         jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(82, 12, -1, -1));
  97.  
  98.         jLabel2.setText("Departamento:");
  99.         jPanel2.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(35, 41, -1, -1));
  100.  
  101.         jLabel3.setText("Manager:");
  102.         jPanel2.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 86, -1, -1));
  103.         jPanel2.add(lblID, new org.netbeans.lib.awtextra.AbsoluteConstraints(144, 12, 81, 17));
  104.         jPanel2.add(txtDepartamento, new org.netbeans.lib.awtextra.AbsoluteConstraints(142, 36, 260, -1));
  105.  
  106.         cbxManager.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
  107.         jPanel2.add(cbxManager, new org.netbeans.lib.awtextra.AbsoluteConstraints(142, 81, 260, -1));
  108.  
  109.         btnCancelar2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Cancelar 2.png"))); // NOI18N
  110.         btnCancelar2.setContentAreaFilled(false);
  111.         btnCancelar2.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  112.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  113.                 btnCancelar2MouseMoved(evt);
  114.             }
  115.         });
  116.         btnCancelar2.addMouseListener(new java.awt.event.MouseAdapter() {
  117.             public void mouseExited(java.awt.event.MouseEvent evt) {
  118.                 btnCancelar2MouseExited(evt);
  119.             }
  120.         });
  121.         btnCancelar2.addActionListener(new java.awt.event.ActionListener() {
  122.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  123.                 btnCancelar2ActionPerformed(evt);
  124.             }
  125.         });
  126.         jPanel2.add(btnCancelar2, new org.netbeans.lib.awtextra.AbsoluteConstraints(405, 33, -1, 30));
  127.  
  128.         jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 460, 120));
  129.  
  130.         tblDepartamentos.setModel(new javax.swing.table.DefaultTableModel(
  131.             new Object [][] {
  132.  
  133.             },
  134.             new String [] {
  135.  
  136.             }
  137.         ));
  138.         jScrollPane1.setViewportView(tblDepartamentos);
  139.  
  140.         jPanel3.add(jScrollPane1);
  141.  
  142.         jPanel1.add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 120, 470, 350));
  143.  
  144.         getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 10, 480, 480));
  145.  
  146.         jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  147.         jPanel4.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
  148.  
  149.         btnNuevo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Nuevo.png"))); // NOI18N
  150.         btnNuevo.setText("Nuevo");
  151.         btnNuevo.setContentAreaFilled(false);
  152.         btnNuevo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  153.         btnNuevo.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  154.         btnNuevo.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  155.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  156.                 btnNuevoMouseMoved(evt);
  157.             }
  158.         });
  159.         btnNuevo.addMouseListener(new java.awt.event.MouseAdapter() {
  160.             public void mouseExited(java.awt.event.MouseEvent evt) {
  161.                 btnNuevoMouseExited(evt);
  162.             }
  163.         });
  164.         btnNuevo.addActionListener(new java.awt.event.ActionListener() {
  165.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  166.                 btnNuevoActionPerformed(evt);
  167.             }
  168.         });
  169.         jPanel4.add(btnNuevo, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 10, 88, -1));
  170.  
  171.         btnEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Editar.png"))); // NOI18N
  172.         btnEditar.setText("Editar");
  173.         btnEditar.setContentAreaFilled(false);
  174.         btnEditar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  175.         btnEditar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  176.         btnEditar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  177.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  178.                 btnEditarMouseMoved(evt);
  179.             }
  180.         });
  181.         btnEditar.addMouseListener(new java.awt.event.MouseAdapter() {
  182.             public void mouseExited(java.awt.event.MouseEvent evt) {
  183.                 btnEditarMouseExited(evt);
  184.             }
  185.         });
  186.         jPanel4.add(btnEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 80, 88, -1));
  187.  
  188.         btnGuardar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Guardar.png"))); // NOI18N
  189.         btnGuardar.setText("Guardar");
  190.         btnGuardar.setContentAreaFilled(false);
  191.         btnGuardar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  192.         btnGuardar.setIconTextGap(3);
  193.         btnGuardar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  194.         btnGuardar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  195.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  196.                 btnGuardarMouseMoved(evt);
  197.             }
  198.         });
  199.         btnGuardar.addMouseListener(new java.awt.event.MouseAdapter() {
  200.             public void mouseExited(java.awt.event.MouseEvent evt) {
  201.                 btnGuardarMouseExited(evt);
  202.             }
  203.         });
  204.         btnGuardar.addActionListener(new java.awt.event.ActionListener() {
  205.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  206.                 btnGuardarActionPerformed(evt);
  207.             }
  208.         });
  209.         jPanel4.add(btnGuardar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 150, 88, -1));
  210.  
  211.         btnEliminar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Eliminar.png"))); // NOI18N
  212.         btnEliminar.setText("Eliminar");
  213.         btnEliminar.setContentAreaFilled(false);
  214.         btnEliminar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  215.         btnEliminar.setIconTextGap(3);
  216.         btnEliminar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  217.         btnEliminar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  218.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  219.                 btnEliminarMouseMoved(evt);
  220.             }
  221.         });
  222.         btnEliminar.addMouseListener(new java.awt.event.MouseAdapter() {
  223.             public void mouseExited(java.awt.event.MouseEvent evt) {
  224.                 btnEliminarMouseExited(evt);
  225.             }
  226.         });
  227.         jPanel4.add(btnEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 210, 88, -1));
  228.  
  229.         btnLimpiar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Limpiar.png"))); // NOI18N
  230.         btnLimpiar.setText("Limpiar");
  231.         btnLimpiar.setContentAreaFilled(false);
  232.         btnLimpiar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  233.         btnLimpiar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  234.         btnLimpiar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  235.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  236.                 btnLimpiarMouseMoved(evt);
  237.             }
  238.         });
  239.         btnLimpiar.addMouseListener(new java.awt.event.MouseAdapter() {
  240.             public void mouseExited(java.awt.event.MouseEvent evt) {
  241.                 btnLimpiarMouseExited(evt);
  242.             }
  243.         });
  244.         jPanel4.add(btnLimpiar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 280, 88, -1));
  245.  
  246.         btnBuscar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Buscar.png"))); // NOI18N
  247.         btnBuscar.setText("Buscar");
  248.         btnBuscar.setContentAreaFilled(false);
  249.         btnBuscar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  250.         btnBuscar.setIconTextGap(3);
  251.         btnBuscar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  252.         btnBuscar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  253.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  254.                 btnBuscarMouseMoved(evt);
  255.             }
  256.         });
  257.         btnBuscar.addMouseListener(new java.awt.event.MouseAdapter() {
  258.             public void mouseExited(java.awt.event.MouseEvent evt) {
  259.                 btnBuscarMouseExited(evt);
  260.             }
  261.         });
  262.         btnBuscar.addActionListener(new java.awt.event.ActionListener() {
  263.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  264.                 btnBuscarActionPerformed(evt);
  265.             }
  266.         });
  267.         jPanel4.add(btnBuscar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 410, 88, -1));
  268.  
  269.         btnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Cancelar.png"))); // NOI18N
  270.         btnCancelar.setText("Cancelar");
  271.         btnCancelar.setContentAreaFilled(false);
  272.         btnCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  273.         btnCancelar.setIconTextGap(3);
  274.         btnCancelar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
  275.         btnCancelar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
  276.             public void mouseMoved(java.awt.event.MouseEvent evt) {
  277.                 btnCancelarMouseMoved(evt);
  278.             }
  279.         });
  280.         btnCancelar.addMouseListener(new java.awt.event.MouseAdapter() {
  281.             public void mouseExited(java.awt.event.MouseEvent evt) {
  282.                 btnCancelarMouseExited(evt);
  283.             }
  284.         });
  285.         btnCancelar.addActionListener(new java.awt.event.ActionListener() {
  286.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  287.                 btnCancelarActionPerformed(evt);
  288.             }
  289.         });
  290.         jPanel4.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 340, 88, -1));
  291.  
  292.         getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 5, 100, 480));
  293.  
  294.         pack();
  295.     }// </editor-fold>                        
  296.  
  297.     private void btnNuevoMouseMoved(java.awt.event.MouseEvent evt) {                                    
  298.         btnNuevo.setContentAreaFilled(true);
  299.     }                                  
  300.  
  301.     private void btnNuevoMouseExited(java.awt.event.MouseEvent evt) {                                    
  302.         btnNuevo.setContentAreaFilled(false);
  303.     }                                    
  304.  
  305.     private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {                                        
  306.  
  307.         desbloquear();
  308.         this.desbloquearBotonesEdicion();
  309.         llenaJComboBoxDepartamentos();
  310.     }                                        
  311.  
  312.     private void btnEditarMouseMoved(java.awt.event.MouseEvent evt) {                                    
  313.         btnEditar.setContentAreaFilled(true);
  314.     }                                    
  315.  
  316.     private void btnEditarMouseExited(java.awt.event.MouseEvent evt) {                                      
  317.         btnEditar.setContentAreaFilled(false);
  318.     }                                    
  319.  
  320.     private void btnGuardarMouseMoved(java.awt.event.MouseEvent evt) {                                      
  321.         btnGuardar.setContentAreaFilled(true);
  322.     }                                    
  323.  
  324.     private void btnGuardarMouseExited(java.awt.event.MouseEvent evt) {                                      
  325.         btnGuardar.setContentAreaFilled(false);
  326.     }                                      
  327.  
  328.     private void btnEliminarMouseMoved(java.awt.event.MouseEvent evt) {                                      
  329.         btnEliminar.setContentAreaFilled(true);
  330.     }                                      
  331.  
  332.     private void btnEliminarMouseExited(java.awt.event.MouseEvent evt) {                                        
  333.         btnEliminar.setContentAreaFilled(false);
  334.     }                                      
  335.  
  336.     private void btnLimpiarMouseMoved(java.awt.event.MouseEvent evt) {                                      
  337.         btnLimpiar.setContentAreaFilled(true);
  338.     }                                    
  339.  
  340.     private void btnLimpiarMouseExited(java.awt.event.MouseEvent evt) {                                      
  341.         btnLimpiar.setContentAreaFilled(false);
  342.     }                                      
  343.  
  344.     private void btnBuscarMouseMoved(java.awt.event.MouseEvent evt) {                                    
  345.         btnBuscar.setContentAreaFilled(true);
  346.     }                                    
  347.  
  348.     private void btnBuscarMouseExited(java.awt.event.MouseEvent evt) {                                      
  349.         btnBuscar.setContentAreaFilled(false);
  350.     }                                    
  351.  
  352.     private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  353.         btnCancelar2.setVisible(true);
  354.         btnCancelar2.setEnabled(true);
  355.         this.btnCancelar.setEnabled(false);
  356.         this.btnBuscar.setEnabled(false);
  357.         this.btnEditar.setEnabled(false);
  358.         this.btnEliminar.setEnabled(false);
  359.         this.btnGuardar.setEnabled(false);
  360.         this.btnLimpiar.setEnabled(false);
  361.         this.btnNuevo.setEnabled(false);
  362.         txtDepartamento.setEnabled(true);
  363.         cbxManager.setEnabled(true);
  364.     }                                        
  365.  
  366.     private void btnCancelarMouseMoved(java.awt.event.MouseEvent evt) {                                      
  367.         btnCancelar.setContentAreaFilled(true);
  368.     }                                      
  369.  
  370.     private void btnCancelarMouseExited(java.awt.event.MouseEvent evt) {                                        
  371.         btnCancelar.setContentAreaFilled(false);
  372.     }                                      
  373.  
  374.     private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
  375.         try {
  376.             int resultado = JOptionPane.showConfirmDialog(this, "Seguro que desea cancelar","Salida",JOptionPane.YES_NO_OPTION);
  377.             if(resultado == JOptionPane.YES_OPTION) {
  378.                 bloquear();
  379.                 bloquearBotonesEdicion();
  380.             }
  381.         }
  382.         catch (Exception e) {
  383.  
  384.         }
  385.     }                                          
  386.  
  387.     private void btnCancelar2MouseMoved(java.awt.event.MouseEvent evt) {                                        
  388.         btnCancelar2.setContentAreaFilled(true);
  389.     }                                      
  390.  
  391.     private void btnCancelar2MouseExited(java.awt.event.MouseEvent evt) {                                        
  392.         btnCancelar2.setContentAreaFilled(false);
  393.     }                                        
  394.  
  395.     private void btnCancelar2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
  396.         try {
  397.             int resultado = JOptionPane.showConfirmDialog(this, "Desea Salir del Modo Busqueda","Modo Busqueda",JOptionPane.YES_NO_OPTION);
  398.             if(resultado == JOptionPane.YES_OPTION) {
  399.                 btnCancelar2.setVisible(false);
  400.                 btnCancelar2.setEnabled(false);
  401.                 this.btnCancelar.setEnabled(true);
  402.                 this.btnBuscar.setEnabled(true);
  403.                 this.btnEditar.setEnabled(true);
  404.                 this.btnEliminar.setEnabled(true);
  405.                 this.btnGuardar.setEnabled(true);
  406.                 this.btnLimpiar.setEnabled(true);
  407.                 this.btnNuevo.setEnabled(true);
  408.                 txtDepartamento.setEnabled(false);
  409.                 cbxManager.setEnabled(false);
  410.             }
  411.         }
  412.         catch (Exception e) {
  413.  
  414.         }
  415.     }                                            
  416.  
  417.     private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  418.  
  419.         this.iniciarOperacion();
  420.         departamento = new Departamentos();
  421.         departamento.setDepartamento(txtDepartamento.getText());
  422.         departamento.setManager((Empleados) cbxManager.getSelectedItem()); // <--- Aca es donde da el error
  423.         departamento.setManager(empleado);
  424.         departamentodao = new DepartamentosDAO();
  425.         departamentodao.guardarDepartamento(departamento);
  426.         updateTabla();
  427.     }                                          
  428.  
  429.     public void bloquear(){
  430.         txtDepartamento.setEnabled(false);
  431.         cbxManager.setEnabled(false);
  432.        
  433.     }
  434.     public void desbloquear(){
  435.         txtDepartamento.setEnabled(true);
  436.         cbxManager.setEnabled(true);
  437.        
  438.     }
  439.    
  440.     public void llenaJComboBoxDepartamentos() {
  441.         sesion = null;
  442.        // List<Empleados> resulsetDepartamentos;
  443.         try {
  444.  
  445.             sesion = HibernateUtil.getSessionFactory().openSession();
  446.  
  447.             Criteria crit = sesion.createCriteria(Empleados.class);
  448.             resulsetDepartamentos = crit.list();// SELECT * FROM TABLA
  449.  
  450.             cbxManager.removeAllItems();
  451.  
  452.             for (Empleados emp : resulsetDepartamentos) {
  453.                 cbxManager.addItem(emp.getNombres()+ " "+ emp.getApellidos());
  454.             }
  455.  
  456.             sesion.close();
  457.  
  458.             //JOptionPane.showMessageDialog(this, "Posicion creada", "Satisfactoriamente", JOptionPane.INFORMATION_MESSAGE);
  459.  
  460.         } catch (Exception e) {
  461.            // JOptionPane.showMessageDialog(this, "Error al crear Posición:" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
  462.         }
  463.     }
  464.     public void iniciarOperacion() throws HibernateException {
  465.        
  466.         sesion = HibernateUtil.getSessionFactory().openSession();
  467.         tx = sesion.beginTransaction();
  468.     }    
  469.     public void updateTabla(){
  470.     String[] columNames = {"ID","Departamento","Manager"};
  471.    
  472.         try{
  473.             this.iniciarOperacion();
  474.             model = (DefaultTableModel) tblDepartamentos.getModel();
  475.             model.setColumnIdentifiers(columNames);
  476.             List<Departamentos> lst;
  477.             lst = sesion.getNamedQuery("TodosDepartamentos").list();
  478.            
  479.            
  480.            for(Departamentos d : lst){
  481.                
  482.                String lista[] = {String.valueOf(d.getDepartamentoid()),d.getDepartamento(),d.getManager().getNombres()+ " " +d.getManager().getApellidos()};
  483.                model.addRow(lista);
  484.            }
  485.            tblDepartamentos.setModel(model);
  486.            sesion.close();
  487.         }
  488.         catch (Exception e) {
  489.             System.out.println("Error " +e);
  490.         }
  491.         TableColumn columna = tblDepartamentos.getColumn("ID");        
  492.         columna.setPreferredWidth(60);
  493.         columna.setMinWidth(40);
  494.         columna.setMaxWidth(60);
  495.     }
  496.     // Variables declaration - do not modify                    
  497.     private javax.swing.JButton btnBuscar;
  498.     private javax.swing.JButton btnCancelar;
  499.     private javax.swing.JButton btnCancelar2;
  500.     private javax.swing.JButton btnEditar;
  501.     private javax.swing.JButton btnEliminar;
  502.     private javax.swing.JButton btnGuardar;
  503.     private javax.swing.JButton btnLimpiar;
  504.     private javax.swing.JButton btnNuevo;
  505.     private javax.swing.JComboBox cbxManager;
  506.     private javax.swing.JLabel jLabel1;
  507.     private javax.swing.JLabel jLabel2;
  508.     private javax.swing.JLabel jLabel3;
  509.     private javax.swing.JPanel jPanel1;
  510.     private javax.swing.JPanel jPanel2;
  511.     private javax.swing.JPanel jPanel3;
  512.     private javax.swing.JPanel jPanel4;
  513.     private javax.swing.JScrollPane jScrollPane1;
  514.     private javax.swing.JLabel lblID;
  515.     private javax.swing.JTable tblDepartamentos;
  516.     private javax.swing.JTextField txtDepartamento;
  517.     // End of variables declaration                  
  518. }

esta es la clase Departamentos

package entidades;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import static javax.persistence.GenerationType.SEQUENCE;
import static javax.persistence.GenerationType.TABLE;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

   
public class Departamentos implements Serializable{
    private long departamentoid;
    private String Departamento;
    private Empleados manager;

   
    public Departamentos(){
       
    }
    public Departamentos(String departamento, Empleados manager) {
        this.Departamento = departamento;
        this.manager = manager;
    }
    public long getDepartamentoid() {
        return departamentoid;
    }

    public void setDepartamentoid(long departamentoid) {
        this.departamentoid = departamentoid;
    }

    public String getDepartamento() {
        return Departamento;
    }

    public void setDepartamento(String Departamento) {
        this.Departamento = Departamento;
    }

    public Empleados getManager() {
        return manager;
    }

    public void setManager(Empleados manager) {
        this.manager = manager;
    }
   
}

Esto esta en el DAO

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package hibernate.mapeos.dao;

import entidades.Departamentos;
import entidades.Posiciones;
import hibernate.mapeos.HibernateUtil;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class DepartamentosDAO {
    private Session sesion;
    private Transaction tx;
   
    public void guardarDepartamento(Departamentos departamento) {
       
        long id = 0;
        try {
           
           
            id = (Long) sesion.save(departamento);
            tx.commit();
           
        } catch (HibernateException he) {
            manejaException(he);
            tx.rollback();
            throw he;
        } finally {
            sesion.close();
        }
       
    }
   public void actualizarDepartamento(Departamentos departamento) throws HibernateException {
       
        try {
            iniciarOperacion();
            sesion.update(departamento);
            tx.commit();
        } catch (HibernateException he){
            tx.rollback();
            throw he;
        } finally {
            sesion.close();
        }
    }
    public void eliminarDepartamento(Departamentos departamento) throws HibernateException {
       
        try {
            iniciarOperacion();
            sesion.delete(departamento);
            tx.commit();
        } catch (HibernateException he){
            throw he;
        } finally {
            sesion.close();
        }
    }
    public Departamentos obtenDepartamento(long departamentoid) throws HibernateException {
       
        Departamentos departamento = null;
        try {
           
            iniciarOperacion();
            departamento = (Departamentos) sesion.get(Departamentos.class, departamentoid);
            Query query = sesion.getNamedQuery("TodosDepartamentos");
            query.setParameter("departamentoid", departamentoid);
           
            departamento = (Departamentos) query.uniqueResult();
        } catch (HibernateException he) {
            throw he;
        } finally {
            sesion.close();
        }
        return departamento;
    }
        public void iniciarOperacion() throws HibernateException {
       
        sesion = HibernateUtil.getSessionFactory().openSession();
        tx = sesion.beginTransaction();
    }
    public void manejaException(HibernateException he) throws HibernateException{
       
        tx.rollback();
        throw new HibernateException("Ocurrio un error en la capa de acceso a datos. ", he);
    }
    public List<Departamentos> listadoDepartamentos() {
        List<Departamentos> lista;
        lista = sesion.createQuery("SELECT d.departamentoid, d.departamento, e.nombres ||' '|| e.apellidos FROM departamentos d JOIN empleados e ON (d.managerid = e.empleadoid)").list();
        return lista;
    }
}

Este es el archivo hnm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="entidades.Departamentos" table="DEPARTAMENTOS">
      <id column="departamentoid" name="departamentoid">
          <generator class="sequence"/>
      </id>
      <property name="departamento" column="DEPARTAMENTO"/>
      <many-to-one name="manager" column="MANAGERID" class="entidades.Empleados"
            cascade="save-update"></many-to-one>
  </class>
 
  <query name="TodosDepartamentos"><![CDATA[
         SELECT p FROM Departamentos p
      ]]>
  </query>    
</hibernate-mapping>

Excepción

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Sr. Negativo

Re: No guarda datos en la base

Revisa tu código:

private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        Departamentos departamento = new Departamentos();
...
...
}

Saludos

edite y puse el código completo, por que lo que me mencionaste lo tengo arriba

Imagen de adrianaaae

Revisa

Revisa el tipo de dato que devuelve tu línea:

cbxManager.getSelectedItem()

Por lo que te dice el error estás devolviendo un String y lo estás tratando de castear a objeto
en este caso a : Empleados.

Lee el error

Lee el mensaje

java.lang.ClassCastException: java.lang.String cannot be casted to entidades.Empleados
VDepartamento.java:423

En la linea 423 del archivo VDepartamento

 departamento.setManager((Empleados) cbxManager.getSelectedItem());

Devuelve un objeto

Que tu esperas sea de tipo empleado, pero lo que tiene ese combo son strings:

  1.     for (Empleados emp : resulsetDepartamentos) {
  2.          cbxManager.addItem(emp.getNombres()+ " "+ emp.getApellidos());
  3.     }

Entonces el cast falla, porque ciertamente getSelectedItem no regresa un Empleado sino un String

Puedes cambiar el modelo para que maneje Empleados ( vas a necesitar un custom renderer ) o puedes pedir el índice en vez del objeto e irlo a buscar en una lista o arreglo donde lo tengas guardado.

Imagen de Nopalin

Como puede alguien escribir

Como puede alguien escribir tanto codigo para una aplicacion, ademas utilizando el concepto de entidades y configurando hibernate, y no ser capaz de detectar un class cast exception...

Imagen de ezamudio

CCE

En este caso es por mal diseño de los componentes. Seguramente cbxManager.getSelectedItem() devuelve Object y por eso le tienen que hacer cast; por qué no es genérica esa clase? Y así pueden indicar qué tipo de objetos maneja y sería claro en tiempo de compilación que maneja String o Empleado, el cast sobraría y por tanto no hay CCE.

En la clase Departamentos

En la clase Departamentos puse esto para modificar lo que me muestra el combobox

    public String toString() {
        return manager.getNombres()+' '+ manager.getApellidos();
    }

y en VDepartamentos puse esto para no tenerlo asi

            for (Empleados emp : resulsetDepartamentos) {
             
                cbxManager.addItem(emp);

            }

Ahora lo que no tengo conocimiento es como puedo capturar idempleado del combobox seleccionado para guardarlo en la base de datos. Si desean pueden darme su correo para enviarle el proyecto y vean mi codigo,