style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Problema Boton Guardar a la Base de Datos JComboBox Hibernate

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

Esto en el JInternalFrame

import entidades.Departamentos;
import entidades.Empleados;
import hibernate.mapeos.HibernateUtil;
import hibernate.mapeos.dao.DepartamentosDAO;
import java.util.List;
import javafx.scene.control.ChoiceBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class VDepartamento extends javax.swing.JInternalFrame {

    Session sesion;
    private Transaction tx;
    DepartamentosDAO departamentodao;
    DefaultTableModel model = new DefaultTableModel();
    DefaultComboBoxModel modelcombo;
    Departamentos  departamento;
    Empleados empleado;
    List<Empleados> listEmpleados;
    List<Departamentos> listDepartamentos;

    public VDepartamento() {
        initComponents();
        this.setTitle("Departamentos");
        this.cbxManager.removeAllItems();
        bloquearBotonesEdicion();
        bloquear();
        updateTabla();
    }
   public void desbloquearBotonesEdicion(){
        btnGuardar.setEnabled(true);
        btnLimpiar.setEnabled(true);
        btnBuscar.setEnabled(true);
        btnNuevo.setEnabled(false);
        btnEditar.setEnabled(false);
        btnEliminar.setEnabled(false);
        btnCancelar.setEnabled(true);
    }
   
    public void bloquearBotonesEdicion(){
        btnGuardar.setEnabled(false);
        btnLimpiar.setEnabled(false);
        btnBuscar.setEnabled(false);
        btnNuevo.setEnabled(true);
        btnEditar.setEnabled(true);
        btnEliminar.setEnabled(true);
        btnCancelar.setEnabled(false);
    }
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        lblID = new javax.swing.JLabel();
        txtDepartamento = new javax.swing.JTextField();
        cbxManager = new javax.swing.JComboBox();
        btnCancelar2 = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblDepartamentos = new javax.swing.JTable();
        jPanel4 = new javax.swing.JPanel();
        btnNuevo = new javax.swing.JButton();
        btnEditar = new javax.swing.JButton();
        btnGuardar = new javax.swing.JButton();
        btnEliminar = new javax.swing.JButton();
        btnLimpiar = new javax.swing.JButton();
        btnBuscar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();

        setClosable(true);
        setIconifiable(true);
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel1.setText("Codigo:");
        jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(82, 12, -1, -1));

        jLabel2.setText("Departamento:");
        jPanel2.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(35, 41, -1, -1));

        jLabel3.setText("Manager:");
        jPanel2.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 86, -1, -1));
        jPanel2.add(lblID, new org.netbeans.lib.awtextra.AbsoluteConstraints(144, 12, 81, 17));
        jPanel2.add(txtDepartamento, new org.netbeans.lib.awtextra.AbsoluteConstraints(142, 36, 260, -1));

        cbxManager.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        jPanel2.add(cbxManager, new org.netbeans.lib.awtextra.AbsoluteConstraints(142, 81, 260, -1));

        btnCancelar2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Cancelar 2.png"))); // NOI18N
        btnCancelar2.setContentAreaFilled(false);
        btnCancelar2.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnCancelar2MouseMoved(evt);
            }
        });
        btnCancelar2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnCancelar2MouseExited(evt);
            }
        });
        btnCancelar2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelar2ActionPerformed(evt);
            }
        });
        jPanel2.add(btnCancelar2, new org.netbeans.lib.awtextra.AbsoluteConstraints(405, 33, -1, 30));

        jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 460, 120));

        tblDepartamentos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        jScrollPane1.setViewportView(tblDepartamentos);

        jPanel3.add(jScrollPane1);

        jPanel1.add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 120, 470, 350));

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 10, 480, 480));

        jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jPanel4.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btnNuevo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Nuevo.png"))); // NOI18N
        btnNuevo.setText("Nuevo");
        btnNuevo.setContentAreaFilled(false);
        btnNuevo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnNuevo.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnNuevo.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnNuevoMouseMoved(evt);
            }
        });
        btnNuevo.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnNuevoMouseExited(evt);
            }
        });
        btnNuevo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNuevoActionPerformed(evt);
            }
        });
        jPanel4.add(btnNuevo, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 10, 88, -1));

        btnEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Editar.png"))); // NOI18N
        btnEditar.setText("Editar");
        btnEditar.setContentAreaFilled(false);
        btnEditar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnEditar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnEditar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnEditarMouseMoved(evt);
            }
        });
        btnEditar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnEditarMouseExited(evt);
            }
        });
        jPanel4.add(btnEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 80, 88, -1));

        btnGuardar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Guardar.png"))); // NOI18N
        btnGuardar.setText("Guardar");
        btnGuardar.setContentAreaFilled(false);
        btnGuardar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnGuardar.setIconTextGap(3);
        btnGuardar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnGuardar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnGuardarMouseMoved(evt);
            }
        });
        btnGuardar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnGuardarMouseExited(evt);
            }
        });
        btnGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGuardarActionPerformed(evt);
            }
        });
        jPanel4.add(btnGuardar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 150, 88, -1));

        btnEliminar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Eliminar.png"))); // NOI18N
        btnEliminar.setText("Eliminar");
        btnEliminar.setContentAreaFilled(false);
        btnEliminar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnEliminar.setIconTextGap(3);
        btnEliminar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnEliminar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnEliminarMouseMoved(evt);
            }
        });
        btnEliminar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnEliminarMouseExited(evt);
            }
        });
        jPanel4.add(btnEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 210, 88, -1));

        btnLimpiar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Limpiar.png"))); // NOI18N
        btnLimpiar.setText("Limpiar");
        btnLimpiar.setContentAreaFilled(false);
        btnLimpiar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnLimpiar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnLimpiar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnLimpiarMouseMoved(evt);
            }
        });
        btnLimpiar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnLimpiarMouseExited(evt);
            }
        });
        jPanel4.add(btnLimpiar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 280, 88, -1));

        btnBuscar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Buscar.png"))); // NOI18N
        btnBuscar.setText("Buscar");
        btnBuscar.setContentAreaFilled(false);
        btnBuscar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnBuscar.setIconTextGap(3);
        btnBuscar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnBuscar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnBuscarMouseMoved(evt);
            }
        });
        btnBuscar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnBuscarMouseExited(evt);
            }
        });
        btnBuscar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBuscarActionPerformed(evt);
            }
        });
        jPanel4.add(btnBuscar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 410, 88, -1));

        btnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Icono_Cancelar.png"))); // NOI18N
        btnCancelar.setText("Cancelar");
        btnCancelar.setContentAreaFilled(false);
        btnCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnCancelar.setIconTextGap(3);
        btnCancelar.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        btnCancelar.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                btnCancelarMouseMoved(evt);
            }
        });
        btnCancelar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnCancelarMouseExited(evt);
            }
        });
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });
        jPanel4.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 340, 88, -1));

        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 5, 100, 480));

        pack();
    }// </editor-fold>                        

    private void btnNuevoMouseMoved(java.awt.event.MouseEvent evt) {                                    
        btnNuevo.setContentAreaFilled(true);
    }                                  

    private void btnNuevoMouseExited(java.awt.event.MouseEvent evt) {                                    
        btnNuevo.setContentAreaFilled(false);
    }                                    

    private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {                                        

        desbloquear();
        this.desbloquearBotonesEdicion();
        llenaJComboBoxDepartamentos();
        cbxManager.setSelectedItem(null);
    }                                        

    private void btnEditarMouseMoved(java.awt.event.MouseEvent evt) {                                    
        btnEditar.setContentAreaFilled(true);
    }                                    

    private void btnEditarMouseExited(java.awt.event.MouseEvent evt) {                                      
        btnEditar.setContentAreaFilled(false);
    }                                    

    private void btnGuardarMouseMoved(java.awt.event.MouseEvent evt) {                                      
        btnGuardar.setContentAreaFilled(true);
    }                                    

    private void btnGuardarMouseExited(java.awt.event.MouseEvent evt) {                                      
        btnGuardar.setContentAreaFilled(false);
    }                                      

    private void btnEliminarMouseMoved(java.awt.event.MouseEvent evt) {                                      
        btnEliminar.setContentAreaFilled(true);
    }                                      

    private void btnEliminarMouseExited(java.awt.event.MouseEvent evt) {                                        
        btnEliminar.setContentAreaFilled(false);
    }                                      

    private void btnLimpiarMouseMoved(java.awt.event.MouseEvent evt) {                                      
        btnLimpiar.setContentAreaFilled(true);
    }                                    

    private void btnLimpiarMouseExited(java.awt.event.MouseEvent evt) {                                      
        btnLimpiar.setContentAreaFilled(false);
    }                                      

    private void btnBuscarMouseMoved(java.awt.event.MouseEvent evt) {                                    
        btnBuscar.setContentAreaFilled(true);
    }                                    

    private void btnBuscarMouseExited(java.awt.event.MouseEvent evt) {                                      
        btnBuscar.setContentAreaFilled(false);
    }                                    

    private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        btnCancelar2.setVisible(true);
        btnCancelar2.setEnabled(true);
        this.btnCancelar.setEnabled(false);
        this.btnBuscar.setEnabled(false);
        this.btnEditar.setEnabled(false);
        this.btnEliminar.setEnabled(false);
        this.btnGuardar.setEnabled(false);
        this.btnLimpiar.setEnabled(false);
        this.btnNuevo.setEnabled(false);
        txtDepartamento.setEnabled(true);
        cbxManager.setEnabled(true);
    }                                        

    private void btnCancelarMouseMoved(java.awt.event.MouseEvent evt) {                                      
        btnCancelar.setContentAreaFilled(true);
    }                                      

    private void btnCancelarMouseExited(java.awt.event.MouseEvent evt) {                                        
        btnCancelar.setContentAreaFilled(false);
    }                                      

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        try {
            int resultado = JOptionPane.showConfirmDialog(this, "Seguro que desea cancelar","Salida",JOptionPane.YES_NO_OPTION);
            if(resultado == JOptionPane.YES_OPTION) {
                bloquear();
                bloquearBotonesEdicion();
            }
        }
        catch (Exception e) {

        }
    }                                          

    private void btnCancelar2MouseMoved(java.awt.event.MouseEvent evt) {                                        
        btnCancelar2.setContentAreaFilled(true);
    }                                      

    private void btnCancelar2MouseExited(java.awt.event.MouseEvent evt) {                                        
        btnCancelar2.setContentAreaFilled(false);
    }                                        

    private void btnCancelar2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        try {
            int resultado = JOptionPane.showConfirmDialog(this, "Desea Salir del Modo Busqueda","Modo Busqueda",JOptionPane.YES_NO_OPTION);
            if(resultado == JOptionPane.YES_OPTION) {
                btnCancelar2.setVisible(false);
                btnCancelar2.setEnabled(false);
                this.btnCancelar.setEnabled(true);
                this.btnBuscar.setEnabled(true);
                this.btnEditar.setEnabled(true);
                this.btnEliminar.setEnabled(true);
                this.btnGuardar.setEnabled(true);
                this.btnLimpiar.setEnabled(true);
                this.btnNuevo.setEnabled(true);
                txtDepartamento.setEnabled(false);
                cbxManager.setEnabled(false);
            }
        }
        catch (Exception e) {

        }
    }                                            

    private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                          

        this.iniciarOperacion();
        departamento = new Departamentos();
        departamento.setDepartamento(txtDepartamento.getText());
        departamento.getManager().setEmpleadoid(Long.parseLong((String) cbxManager.getSelectedItem()));  <--- Aqui es el problema
        departamentodao = new DepartamentosDAO();
        departamentodao.guardarDepartamento(departamento);
        updateTabla();

    }                                          

    public void bloquear(){
        txtDepartamento.setEnabled(false);
        cbxManager.setEnabled(false);
       
    }
    public void desbloquear(){
        txtDepartamento.setEnabled(true);
        cbxManager.setEnabled(true);
       
    }
   
    public void llenaJComboBoxDepartamentos() {
        sesion = null;
       // List<Empleados> resulsetDepartamentos;
        try {
            this.iniciarOperacion();
            listEmpleados = sesion.getNamedQuery("TodosEmpleados").list();// SELECT * FROM TABLA

            cbxManager.removeAllItems();

            for (Empleados emp : listEmpleados) {
                cbxManager.addItem(emp.getNombres()+ " "+ emp.getApellidos());
            }

            sesion.close();

            //JOptionPane.showMessageDialog(this, "Posicion creada", "Satisfactoriamente", JOptionPane.INFORMATION_MESSAGE);

        } catch (Exception e) {
           // JOptionPane.showMessageDialog(this, "Error al crear Posición:" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }
    public void iniciarOperacion() throws HibernateException {
       
        sesion = HibernateUtil.getSessionFactory().openSession();
        tx = sesion.beginTransaction();
    }    
    public void updateTabla(){
    String[] columNames = {"ID","Departamento","Manager"};
   
        try{
            this.iniciarOperacion();
            model = (DefaultTableModel) tblDepartamentos.getModel();
            model.setColumnIdentifiers(columNames);
            List<Departamentos> lst;
            lst = sesion.getNamedQuery("TodosDepartamentos").list();
           
           
           for(Departamentos d : lst){
               
               String lista[] = {String.valueOf(d.getDepartamentoid()),d.getDepartamento(),d.getManager().getNombres()+ " " +d.getManager().getApellidos()};
               model.addRow(lista);
           }
           tblDepartamentos.setModel(model);
           sesion.close();
        }
        catch (Exception e) {
            System.out.println("Error " +e);
        }
        TableColumn columna = tblDepartamentos.getColumn("ID");        
        columna.setPreferredWidth(60);
        columna.setMinWidth(40);
        columna.setMaxWidth(60);
    }
    // Variables declaration - do not modify                    
    private javax.swing.JButton btnBuscar;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnCancelar2;
    private javax.swing.JButton btnEditar;
    private javax.swing.JButton btnEliminar;
    private javax.swing.JButton btnGuardar;
    private javax.swing.JButton btnLimpiar;
    private javax.swing.JButton btnNuevo;
    private javax.swing.JComboBox cbxManager;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel lblID;
    private javax.swing.JTable tblDepartamentos;
    private javax.swing.JTextField txtDepartamento;
    // End of variables declaration                  
}

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 hbn.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>
AdjuntoTamaño
Pantallazo-2.png71.39 KB

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 neko069

Error

Guiándome por la imagen, línea 425, en:

departamento.getManager().setEmpleadoid(Long.parseLong((String) cbxManager.getSelectedItem()));

Estás intentando hacer un casting de String a Long cuando el componente cbxManager te devuelve un String .... no será que lo que necesitas es el índice en vez del item ... o bien al item sacarle alguna propiedad que puedas hacer el casting a Long?? pon por separado qué es lo que te devuelve tu combo, y checa en el depurador si te devuelve algo numérico.

gracias, pero ....

o sea, lo que deseo es capturar el id para pasarlo al momento de guardar

Imagen de SuperSerch

El problema...

Cuando estás llenando el combo le estas pasando:

cbxManager.removeAllItems();
for (Empleados emp : listEmpleados) {
   cbxManager.addItem(emp.getNombres()+ " "+ emp.getApellidos());
}

por eso cbxManager.getSelectedItem() te regresa el nombre, mas no el Id, lo que puedes hacer es guardar un objeto que tenga el nombre y el Id y que su método toString() regrese el nombre (lo que se va a ver en el combo) y tenga un getID() que regrese el long que necesitas

Estas guardando strings y

Estas guardando strings y quieres sacar longs

...
            for (Empleados emp : listEmpleados) {
                cbxManager.addItem(emp.getNombres()+ " "+ emp.getApellidos());
            }
....

y luego

        departamento.getManager().setEmpleadoid(Long.parseLong((String) cbxManager.getSelectedItem()));  <--- Aqui es el problema
...

Vas a tener más problemas de estos si no entiendes como funcionan los tipos de datos en Java.

Puedes hacer un programa pequeño separado que te ayude a entender como funciona lo que quieres usar ( en este caso el JComboBox ) y cuando ya tengas el concepto claro lo incorporas en tu código más grande.

De esta forma también es más fácil recibir ayuda al mostrar menos código en vez de todo tu programa.

Intenta usando getSelectedIndex() en vez de getSelectedItem que te devuelve el indice seleccionado y luego usa ese indice para obtener tu objeto de otra lista;

Aqui hay un programa que hace lo que necesitas

import javax.swing.*;
import java.util.*;
import java.awt.BorderLayout;

class Empleado {
    int id;
    String nombre;
    String apellido;
    Empleado( int id, String nombre, String apellido ) {
        this.id = id;
        this.nombre = nombre;
        this.apellido = apellido;
    }
    public String toString() {
        return nombre + " " + apellido;
    }
}
class Main {
    public static void main(String ... args ) {
        // Empleados
        List<Empleado> lista = new ArrayList<Empleado>();
        lista.add( new Empleado(1000, "a", "a") );
        lista.add( new Empleado(2450, "b", "b") );
        lista.add( new Empleado(3800, "c", "c") );
        lista.add( new Empleado(1000_8000, "d", "d") );

        // El combo
        JComboBox<Empleado> combo = new JComboBox<Empleado>();
        for( Empleado e :lista ) {
            combo.addItem(e);
        }

        // Text field para mostrar datos
        JTextField field = new JTextField();

        // Boton para que muestre cual es el id seleccionado
        JButton clic = new JButton("Click");
        clic.addActionListener( e -> {
            int i = combo.getSelectedIndex();
            Empleado seleccionado = lista.get(i);
            field.setText("El id es: "+ seleccionado.id);
        });
       
        // Armar GUI
        JFrame frame = new JFrame();
        frame.add(field, BorderLayout.PAGE_START);
        frame.add(combo, BorderLayout.CENTER);
        frame.add(clic, BorderLayout.PAGE_END);
        frame.pack();
        frame.setLocationRelativeTo(null);

        // Mostrarlo
        frame.setVisible(true);
    }
}

por cierto, usar getSelectedItem también funciona, porque estoy guardando Empleado y sacando Empleado

       ...
       clic.addActionListener( e -> {
            //int i = combo.getSelectedIndex();
            Empleado seleccionado = (Empleado)combo.getSelectedItem();//lista.get(i);

            field.setText("El id es: "+ seleccionado.id);
        });

Pero te va a resultar más difícil ver y probar cambios como estos si lo intentar hacer en el programa grande antes de entender como funciona el componenente.

Documentación

https://docs.oracle.com/javase/8/docs/api/javax/swing/JComboBox.html
https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">