Java - Consulta con JComboBox e Hibernate

 
Vista:

Consulta con JComboBox e Hibernate

Publicado por Juan Bautista Goicoechea (1 intervención) el 12/02/2020 20:14:18
Hola, buenas tardes. Soy programador amateur y tengo un problema que me trae desde hace meses dolores de cabeza.
Tengo dos tablas en una DB MySQL donde una de las tablas (TABLA A) toma a traves de una llave foranea valores de la otra tabla (TABLA B).

La TABLA B la cargo en un JFrame de Java con un JComboBox con el siguiente codigo. En el mismo cargo la descripcion, posteriormente debo recuperar el ID de ese item seleccionado en el combo.

1
2
3
4
5
6
7
8
9
private void cargaComboGruposanguineo(){
    this.combo.removeAllItems();
    st.getTransaction().begin();
    List<Secundaria> lista = (List<Secundaria>)st.createQuery("From Secundaria").list();
    lista.forEach((tipoList) -> {
        this.combo.addItem(tipoList.getSecundariacol());
    });
    st.getTransaction().commit();
}

Hasta ahi bien, ahora cuando quiero guardar la info en la TABLA A, tengo que tomar el ID del item que tengo en el combobox de la TABLA 2. para hacer eso uso esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private Secundaria grupoId(String val){
    Secundaria valId = null;
    String desTipo = val;
    try {
        Query query = st.createQuery("From Secundaria t  Where  t. secundariacol = :secundariacol");
        query.setString("secundariacol", desTipo);
        try {
            valId = (Secundaria) query.uniqueResult();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
 
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
    return valId;
}

y luego para grabar en la base de datos uso este codigo

1
2
3
4
5
6
//tomo el item y lo paso a un objeto
        Object valor = combo.getSelectedItem();
//instancio un objeto de la entidad "secundaria" con el resultado de la funcion grupoId que me retorna el id
        Secundaria val =grupoId(valor.toString());
//grabo el valor en al entidad "primaria". TABLA A
        grupo.setSecundaria(val);

mi pregunta es si hay alguna manera mas facil de recuperar los ID de los combobox traidos desde una base de datos, ya que me demanda mucho tiempo cuando tengo varios combobox crear la funcion. y si en su defecto puedo hacer la funcion de alguna manera de que pueda llamarla cada vez que tenga un combobox.

Espero haberme explicado correctamente,

Muchas gracias camaradas.

un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder