Popular Jcombobox(REsolvido)

64 respostas
java
Dfodani

Estou tentando fazer uma consulta no banco para popular uma jcomboxbox com as siglas do estados mas nao esta dando certo alguém pode me ajudar?

segue minha consulta?

private void ufActionPerformed(java.awt.event.ActionEvent evt) {                                   
        // TODO add your handling code here:
        Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
        Long estadoCodigo = null; 
		try {
			Criteria consulta = sessao.createCriteria(Estado.class);
			consulta.add(Restrictions.eq("estado.codigo", estadoCodigo));	
			consulta.addOrder(Order.asc("nome"));
			List<Estado> resultado = consulta.list();
		} catch (RuntimeException erro) {
			throw erro;
		} finally {
			sessao.close();
		}
    }

64 Respostas

rodriguesabner

onde vc adiciona no combo? pq nao ta dando certo?

Dfodani

vou colocar todo o código aqui
pra voce ver

Dfodani

seria na tela cidades

Dfodani

adiciono os estados de certo esta faltando algum valor para pegar que eu nao vi

Dfodani

Tela Cidades

/*

  • 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 com.meson.sistemavendas.tela;
import com.meson.sistemavendas.domain.Cidade;

import com.meson.sistemavendas.domain.Estado;

import com.meson.sistemavendas.util.HibernateUtil;

import java.util.List;

import org.hibernate.Criteria;

import org.hibernate.Session;

import org.hibernate.criterion.Order;

import org.hibernate.criterion.Restrictions;

/**
*

  • @author Dani
    */
    public class TelaCidade extends javax.swing.JFrame {

    /**

    • Creates new form TelaCidade
      */
      public TelaCidade() {
      initComponents();
      }

    /**

    • 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)
      
      // 
      
      private void initComponents() {
      
      jLabel1 = new javax.swing.JLabel();
      
      jLabel2 = new javax.swing.JLabel();
      
      jTextField1 = new javax.swing.JTextField();
      
      jLabel3 = new javax.swing.JLabel();
      
      uf = new javax.swing.JComboBox();
      

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

      jLabel1.setText(“Cadastro de Cidades”);

      jLabel2.setText(“Nome:”);

      jLabel3.setText("UF: ");

      uf.setModel(new javax.swing.DefaultComboBoxModel(new String[] { Item 1, Item 2, Item 3, Item 4 }));
      
      uf.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      ufActionPerformed(evt);
      
      }
      
      });
      
      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      
      getContentPane().setLayout(layout);
      
      layout.setHorizontalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addGap(149, 149, 149)
      
      .addComponent(jLabel1))
      
      .addGroup(layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(jLabel2)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 274, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addGroup(layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(jLabel3)
      
      .addGap(18, 18, 18)
      
      .addComponent(uf, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)))
      
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      
      );
      
      layout.setVerticalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(jLabel1)
      
      .addGap(18, 18, 18)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(jLabel2)
      
      .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(jLabel3)
      
      .addComponent(uf, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addContainerGap(35, Short.MAX_VALUE))
      
      );
      

      pack();
      }//

    private void ufActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
    
    Long estadoCodigo = null;
    
    try {
    
    Criteria consulta = sessao.createCriteria(Estado.class);
    
    consulta.add(Restrictions.eq(“estado.codigo”, estadoCodigo));	
    
    consulta.addOrder(Order.asc(“nome”));
    
    List resultado = consulta.list();
    
    } catch (RuntimeException erro) {
    
    throw erro;
    
    } finally {
    
    sessao.close();
    
    }
    
    }
    

    /**

    • @param args the command line arguments
      /
      public static void main(String args[]) {
      /
      Set the Nimbus look and feel /
      //
      /
      If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

      • For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
        */
        try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
        if (“Nimbus”.equals(info.getName())) {
        javax.swing.UIManager.setLookAndFeel(info.getClassName());
        break;
        }
        }
        } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(TelaCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(TelaCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(TelaCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(TelaCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //
      /* Create and display the form */
      
      java.awt.EventQueue.invokeLater(new Runnable() {
      
      public void run() {
      
      new TelaCidade().setVisible(true);
      
      }
      
      });
      
      }
      
    // Variables declaration - do not modify
    
    private javax.swing.JLabel jLabel1;
    
    private javax.swing.JLabel jLabel2;
    
    private javax.swing.JLabel jLabel3;
    
    private javax.swing.JTextField jTextField1;
    
    private javax.swing.JComboBox uf;
    
    // End of variables declaration
    
    }
    
Dfodani

cidade

package com.meson.sistemavendas.domain;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;

/**
*

  • @author Dani
    
    */
    
    @SuppressWarnings(serial)
    
    @Entity
    
    public class Cidade implements Serializable{
    
    @Column(length = 50, nullable = false)
    
    private String nome;
    
    @ManyToOne
    
    @JoinColumn(nullable = false)
    
    private Estado estado;
    
    @GeneratedValue(strategy = GenerationType.AUTO)
    
    @Id
    
    private Long codigo;
    
    public Long getCodigo() {
    
    return codigo;
    
    }
    
    public void setCodigo(Long codigo) {
    
    this.codigo = codigo;
    
    }
    
    <a class="mention" href="/u/override">@Override</a>
    
    public String toString() {
    
    return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo());
    
    }
    
    public String getNome() {
    
    return nome;
    
    }
    
    public void setNome(String nome) {
    
    this.nome = nome;
    
    }
    
    public Estado getEstado() {
    
    return estado;
    
    }
    
    public void setEstado(Estado estado) {
    
    this.estado = estado;
    
    }
    
    }
    
Dfodani

hibernateutil

package com.meson.sistemavendas.util;

import com.meson.sistemavendas.domain.Cidade;

import com.meson.sistemavendas.domain.Estado;

import java.sql.Connection;

import java.sql.SQLException;
import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import org.hibernate.cfg.Configuration;

import org.hibernate.jdbc.ReturningWork;

import org.hibernate.service.ServiceRegistry;

public class HibernateUtil {
private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes();

public static SessionFactory getFabricaDeSessoes() {
	return fabricaDeSessoes;
}

public static Connection getConexao(){
	Session sessao = fabricaDeSessoes.openSession();
	
	Connection conexao = sessao.doReturningWork(new ReturningWork<Connection>() {
		@Override
		public Connection execute(Connection conn) throws SQLException {
			return conn;
		}
	});
	
	return conexao;
}

private static SessionFactory criarFabricaDeSessoes() {
	try {
		Configuration configuracao = new Configuration().configure();
                    configuracao.addAnnotatedClass(Estado.class);
                     configuracao.addAnnotatedClass(Cidade.class);
		
		ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build();
		
		SessionFactory fabrica = configuracao.buildSessionFactory(registro);
		
		return fabrica;
	} catch (Throwable ex) {
		System.err.println("A fábrica de sessões não pode ser criada." + ex);
		throw new ExceptionInInitializerError(ex);
	}
}

}

Dfodani

só uso essas classes estou tentando fazer o mais simples possível a minha aplicação

Dfodani

Alterei o código de novo não popula de jeito nenhum o jcombobox rsrsrs preciso de uma luz segue o codigo

private void ufActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Estado est = new Estado();
try {
Criteria consulta = sessao.createCriteria(Estado.class);
consulta.add(Restrictions.eq(est.getSigla(),“sigla”));
List resultado = consulta.list();
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}

Dfodani

imagem da minha tecla

darlan_machado

@Dfodani, para popular o JComboBox, você precisa mais do que fazer uma consulta e popular uma lista.
Precisa fazer algo como:

JComboBox<Estado> combo = new  JComboBox<Estado>();
for(Estado est : listaDeEstados) {
    combo.addItem(est);
}

Sem isso, nada feito.

Dfodani

dei uma alterada no codigo mas fica dando pau na linha do for

private void ufActionPerformed(java.awt.event.ActionEvent evt) {                                   
        // TODO add your handling code here:
        Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
        Estado est = new Estado();
                    Criteria consulta = sessao.createCriteria(Estado.class);
consulta.add(Restrictions.eq(est.getSigla(),"sigla"));
            List<Estado> resultado = consulta.list();
             JComboBox<Estado> combo = new  JComboBox<Estado>();
        Iterable<Estado> listaDeEstados = null;
            for(Estado est : listaDeEstados){
             combo.addItem(est);
            }
    }
darlan_machado

Vai dar mesmo, afinal, a tua lista é essa:

Logo. o for deve usar o que ela trouxe:

for(Estado est : resultado) {
Dfodani

mesmo assim da erro no for

private void ufActionPerformed(java.awt.event.ActionEvent evt) {                                   
        // TODO add your handling code here:
        Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
        Estado est = new Estado();
                    Criteria consulta = sessao.createCriteria(Estado.class);
consulta.add(Restrictions.eq(est.getSigla(),"sigla"));
            List<Estado> resultado = consulta.list();
             JComboBox<Estado> combo = new  JComboBox<Estado>();
             for(Estado est : resultado) {
             combo.addItem(est);
             }
    }
Dfodani

Se agora alterei o for nao era pra dar certo?

darlan_machado

Qual o erro?

Dfodani

Dfodani

apenas fica essa lampada com vermelhinho ao executar nao aparece nada

darlan_machado

Se você clicar sobre a tal “lâmpada” deve aparecer um popup com uma mensagem informando a razão do erro.

Dfodani

sim aparece só que aparece só usar operação funcional
ja tentei usar só que ai fica vermelho de vez o erro fica pior rsrs

Dfodani

ja tentei usar de tudo aqui clicando nessas lampadas mas nao funciona :confused:

darlan_machado

Então, será que é possível informar qual a mensagem que aparece?

rodriguesabner

As vezes é bug da IDE, salva o arquivo, fecha ele e abre novamente… O ARQUIVO, não precisa fechar o projeto todo

Dfodani

ele altera o codigo assim quando coloca utililizar operação funcional clicando na lampada anterior quando executo nao aparece mensagem nenhuma mas não puxa as siglas dos estados

Dfodani

ta

Dfodani

limpei e construi o projeto de novo

error: variable est is already defined in method ufActionPerformed(ActionEvent)

for(Estado est : resultado) {

Note: C:\Users\Dani\Desktop\SistemaVendas\src\com\meson\sistemavendas\tela\TelaCidade.java uses or overrides a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

Note: C:\Users\Dani\Desktop\SistemaVendas\src\com\meson\sistemavendas\tela\TelaCidade.java uses unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

1 error

C:\Users\Dani\Desktop\SistemaVendas\nbproject\build-impl.xml:923: The following error occurred while executing this line:

C:\Users\Dani\Desktop\SistemaVendas\nbproject\build-impl.xml:263: Compile failed; see the compiler error output for details.

FALHA NA CONSTRUÇÃO (tempo total: 4 segundos)
darlan_machado

A mensagem é bem clara: variable est already exists…
Traduzindo: você já tem, em algum ponto do código, uma variável chamada est.
A sugestão é trocar:

for(Estado estado_ : resultado) {
    combo.addItem(estado_);
}
Dfodani

Alterei mais uma vez mas não tras as uf ainda
agora não deu erro nenhum…eu uso sigla para a coluna de uf no banco de dados sera que tem algo errado?

Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
    Estado est = new Estado();
                Criteria consulta = sessao.createCriteria(Estado.class);
consulta.add(Restrictions.eq(est.getSigla(),sigla));

List resultado = consulta.list();

JComboBox combo = new  JComboBox();

for(Estado estado_ : resultado) {

combo.addItem(estado_);

}
Dfodani

Classe Estado

package com.meson.sistemavendas.domain;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;
@SuppressWarnings(serial)

@Entity

public class Estado implements Serializable {

@GeneratedValue(strategy = GenerationType.AUTO)

@Id

private Long codigo;

@Column(length = 2, nullable = false)

private String sigla;
@Column(length = 50, nullable = false)
private String nome;
    
    public Long getCodigo() {
	return codigo;
}

public void setCodigo(Long codigo) {
	this.codigo = codigo;
}

public String toString() {
	return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo());
}

public String getSigla() {
	return sigla;
}

public void setSigla(String sigla) {
	this.sigla = sigla;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

}

darlan_machado

Uma coisa de cada vez.
Você tem certeza que a lista está sendo populada? Caso isso não esteja ocorrendo, então, é preciso verificar a causa.

Eu não entendi a razão de você colocar essa restriction aqui.

Se a ideia é listar os estados, não tem por que essa restriction.

Dfodani

na verdade nao tenho certeza eu preciso popular apenas pra chamar as siglas eu vou tentar tirar essa restriction ai pra ver que vira

Dfodani

outra coisa a est é que estanciei estado est = new Estado();

e quando faço o for eu pego estado_ pode nao estar chamando também

Dfodani

o código é so isso que esta chamando dentro do jcombobox e simplesmente não funciona rsrs
eu coloquei o nome do meu combobox de uf no programa

private void ufActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Criteria consulta = sessao.createCriteria(Estado.class);
List resultado = consulta.list();
JComboBox combo = new JComboBox();
for(Estado estado_ : resultado) {
combo.addItem(estado_);

}
}

darlan_machado

Precisamos eliminar as possibilidades.
Minha sugestão é que você debugue a aplicação ou imprima o conteúdo da lista de estados, após a query.
E, no meu ponto de vista, remova a linha onde adiciona a condição (restriction);

Dfodani

vou ver aqui de novo rs

Dfodani

Dfodani

nao deu erro ao debugar so apareceu essa mensagem

darlan_machado

Olha, opinião pessoal, netbeans é uma merda.

List resultado = consulta.list();
System.out.println(resultado);

Coloca a linha de impressão, logo abaixo da busca. Aí o java deve printar o que a lista possui

Dfodani

não sei nem o que fazer mais vc tem algum pedaço de codigo que voce popula com hibernate talvez alterando como exemplo

Dfodani

também acho rsrs foda é que preciso desenhar as telas indica algum outro ide plugin?

darlan_machado

Eu sempre preferi usar Eclipse com WindowBuilder.
Acho muito mais produtivo e gera menos lixo no código.

Dfodani

vou desinstalar essa versão e instalar uma mais atual do netbeans porque nem mensagem nao quer aparecer ai abro o projeto na nova ai te aviso aqui to até nervosa ja rsrs

Dfodani

vou ver esse window builder nunca usei

darlan_machado

O windowbuilder é só para o eclipse.

Dfodani

então so que vou tentar usar ele pra ver o eclipse é melhor mesmo rsrs esse outro da mta dor de cabeça rs

Dfodani

eu comecei pelas telas mais simples pq isso que estou fazendo é o básico por que o sistema quase todo usa combobox etc…

darlan_machado

Certo.
Eu realmente recomendo eclipse. Uso há anos e desde sempre foi muito mais fácil que o netbeans.

Dfodani

agora to aqui apanhando para arrastar os componentes do window builder kkk

darlan_machado

Teoricamente, não deveria ser difícil.
Talvez você precise definir o layout manager como default, a fim de evitar o redimensionamento e reposicionamento automático.

Dfodani

onde eu defino? é que nunca usei eu nao sei rs vou procurar no google

darlan_machado

Selecionando o JFrame ou JPanel em questão, veja que abre uma banda de propriedades. Se eu bem me lembro, a primeira propriedade é layout.

Dfodani

oi Darlan eu alterei tudo agora to com um probleminha aqui nao salva mais kkkkkk
nao da erro nem nada mas passei o codigo e ai deu um monte de pau chateada

minha tela estado ai

package com.meson.sistemavendas.Tela;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.meson.sistemavendas.Domain.Estado;
import com.meson.sistemavendas.util.HibernateUtil;

import javax.swing.GroupLayout;

import javax.swing.GroupLayout.Alignment;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.LayoutStyle.ComponentPlacement;

import javax.swing.JButton;

public class TelaEstado extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				TelaEstado frame = new TelaEstado();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 */
public TelaEstado() {
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 450, 300);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	
	JLabel lblNewLabel = new JLabel("Nome:");
	
	JLabel lblNewLabel_1 = new JLabel("Sigla");
	
	textField = new JTextField();
	textField.setColumns(10);
	
	textField_1 = new JTextField();
	textField_1.setColumns(10);
	
	JButton btnSalvar = new JButton("Salvar");
	
	JLabel lblCadastroDeEstados = new JLabel("Cadastro de Estados");
	GroupLayout gl_contentPane = new GroupLayout(contentPane);
	gl_contentPane.setHorizontalGroup(
		gl_contentPane.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_contentPane.createSequentialGroup()
				.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_contentPane.createSequentialGroup()
						.addComponent(lblNewLabel)
						.addPreferredGap(ComponentPlacement.RELATED)
						.addComponent(textField, GroupLayout.PREFERRED_SIZE, 326, GroupLayout.PREFERRED_SIZE))
					.addGroup(gl_contentPane.createSequentialGroup()
						.addComponent(lblNewLabel_1)
						.addPreferredGap(ComponentPlacement.RELATED)
						.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
							.addComponent(btnSalvar)
							.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 73, GroupLayout.PREFERRED_SIZE)))
					.addGroup(gl_contentPane.createSequentialGroup()
						.addGap(129)
						.addComponent(lblCadastroDeEstados)))
				.addContainerGap(63, Short.MAX_VALUE))
	);
	gl_contentPane.setVerticalGroup(
		gl_contentPane.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_contentPane.createSequentialGroup()
				.addContainerGap()
				.addComponent(lblCadastroDeEstados)
				.addGap(25)
				.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
					.addComponent(lblNewLabel)
					.addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
				.addGap(18)
				.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
					.addComponent(lblNewLabel_1)
					.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
				.addGap(50)
				.addComponent(btnSalvar)
				.addContainerGap(71, Short.MAX_VALUE))
	);
	contentPane.setLayout(gl_contentPane);
}
	 private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
	        // TODO add your handling code here:
	    	Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
			Transaction transacao = null;
	                Estado estado = new Estado();

			try {
	                    estado.setNome(textField.getText());
	                    estado.setSigla((textField_1.getText()));
				transacao = sessao.beginTransaction();
				sessao.save(estado);
				transacao.commit();
			} catch (RuntimeException erro) {
				if (transacao != null) {
					transacao.rollback();
				}
				throw erro;
			} finally {
				sessao.close();
			}
/*
 * 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.
 */
}

}

darlan_machado

Minha bola de cristal está fora de área.
Preciso que diga quais foram estes “monte de pau” que deu.
Senão, fica difícil.

Dfodani

consegui fazer salvar mas deu um errinho no final

dez 27, 2019 5:10:38 PM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreation
INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
dez 27, 2019 5:10:38 PM org.hibernate.type.BasicTypeRegistry register
INFO: HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@4b197a5a
dez 27, 2019 5:10:40 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@292c8408] for (non-JTA) DDL execution was not in auto-commit mode; the Connection ‘local transaction’ will be committed and the Connection will be set into auto-commit mode.
Hibernate: create table Cidade (codigo int8 not null, nome varchar(50) not null, estado_codigo int8 not null, primary key (codigo))

darlan_machado

Esse trecho não mostra nenhum erro.

Dfodani

ta com aquela frescura de recriar tabela de novo nao entendo por que eu ja tinha refeito o hibernate cfg e tinha parado com isso :confused: ai agora na outra ide esta acontecendo isso por que ?

dez 30, 2019 10:09:53 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException

WARN: GenerationTarget encountered exception accepting command : Error executing DDL create table Cidade (codigo int8 not null, nome varchar(50) not null, estado_codigo int8 not null, primary key (codigo)) via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL create table Cidade (codigo int8 not null, nome varchar(50) not null, estado_codigo int8 not null, primary key (codigo)) via JDBC Statement

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:277)

at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:310)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)

Codigo da tabela cidade

package com.meson.sistemavendas.Domain;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;

/**
*

  • @author Dani
    
    */
    
    @SuppressWarnings(serial)
    
    @Entity
    
    public class Cidade implements Serializable{
    
    @Column(length = 50, nullable = false)
    
    private String nome;
    
    @ManyToOne
    
    @JoinColumn(nullable = false)
    
    private Estado estado;
    
    @GeneratedValue(strategy = GenerationType.AUTO)
    
    @Id
    
    private Long codigo;
    
    public Long getCodigo() {
    
    return codigo;
    
    }
    
    public void setCodigo(Long codigo) {
    
    this.codigo = codigo;
    
    }
    
    <a class="mention" href="/u/override">@Override</a>
    
    public String toString() {
    
    return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo());
    
    }
    
    public String getNome() {
    
    return nome;
    
    }
    
    public void setNome(String nome) {
    
    this.nome = nome;
    
    }
    
    public Estado getEstado() {
    
    return estado;
    
    }
    
    public void setEstado(Estado estado) {
    
    this.estado = estado;
    
    }
    
    }
    

~hibernate util

package com.meson.sistemavendas.util;

import java.sql.Connection;

import java.sql.SQLException;
import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import org.hibernate.cfg.Configuration;

import org.hibernate.jdbc.ReturningWork;

import org.hibernate.service.ServiceRegistry;

import com.meson.sistemavendas.Domain.Cidade;
import com.meson.sistemavendas.Domain.Estado;

public class HibernateUtil {
private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes();

public static SessionFactory getFabricaDeSessoes() {
	return fabricaDeSessoes;
}

public static Connection getConexao(){
	Session sessao = fabricaDeSessoes.openSession();
	
	Connection conexao = sessao.doReturningWork(new ReturningWork<Connection>() {
		@Override
		public Connection execute(Connection conn) throws SQLException {
			return conn;
		}
	});
	
	return conexao;
}

private static SessionFactory criarFabricaDeSessoes() {
	try {
		Configuration configuracao = new Configuration().configure();
                    configuracao.addAnnotatedClass(Estado.class);
                  configuracao.addAnnotatedClass(Cidade.class);
		
		ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build();
		
		SessionFactory fabrica = configuracao.buildSessionFactory(registro);
		
		return fabrica;
	} catch (Throwable ex) {
		System.err.println("A fábrica de sessões não pode ser criada." + ex);
		throw new ExceptionInInitializerError(ex);
	}
}

}

Hibernate cfg

<?xml version="1.0" encoding="UTF-8"?> org.postgresql.Driver postgres jdbc:postgresql://localhost:5432/sistema postgres org.hibernate.dialect.PostgreSQLDialect true false update
</session-factory>
Dfodani

fala que a relação cidade ja existe

Dfodani

erro quando executo a tela de cidades que era pra trazer a jcombobox populada

INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@3526a8ab] for (non-JTA) DDL execution was not in auto-commit mode; the Connection local transaction will be committed and the Connection will be set into auto-commit mode.

Hibernate: create table Cidade (codigo int8 not null, nome varchar(50) not null, estado_codigo int8 not null, primary key (codigo))

dez 30, 2019 10:21:40 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException

WARN: GenerationTarget encountered exception accepting command : Error executing DDL create table Cidade (codigo int8 not null, nome varchar(50) not null, estado_codigo int8 not null, primary key (codigo)) via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL create table Cidade (codigo int8 not null, nome varchar(50) not null, estado_codigo int8 not null, primary key (codigo)) via JDBC Statement

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:277)

at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:310)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)

at com.meson.sistemavendas.util.HibernateUtil.criarFabricaDeSessoes(HibernateUtil.java:43)

at com.meson.sistemavendas.util.HibernateUtil.(HibernateUtil.java:16)

at com.meson.sistemavendas.Tela.TelaCidade.(TelaCidade.java:67)

at com.meson.sistemavendas.Tela.TelaCidade$1.run(TelaCidade.java:40)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: org.postgresql.util.PSQLException: ERROR: relation cidade already exists

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:562)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:406)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:398)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

 29 more
Hibernate: create table Estado (codigo int8 not null, nome varchar(50) not null, sigla varchar(2) not null, primary key (codigo))

dez 30, 2019 10:21:40 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException

WARN: GenerationTarget encountered exception accepting command : Error executing DDL create table Estado (codigo int8 not null, nome varchar(50) not null, sigla varchar(2) not null, primary key (codigo)) via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL create table Estado (codigo int8 not null, nome varchar(50) not null, sigla varchar(2) not null, primary key (codigo)) via JDBC Statement

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:277)

at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:310)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)

at com.meson.sistemavendas.util.HibernateUtil.criarFabricaDeSessoes(HibernateUtil.java:43)

at com.meson.sistemavendas.util.HibernateUtil.(HibernateUtil.java:16)

at com.meson.sistemavendas.Tela.TelaCidade.(TelaCidade.java:67)

at com.meson.sistemavendas.Tela.TelaCidade$1.run(TelaCidade.java:40)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: org.postgresql.util.PSQLException: ERROR: relation estado already exists

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:562)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:406)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:398)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

 29 more
Hibernate: alter table Cidade add constraint FKqed4xf4didnaoj5gas05bjwd9 foreign key (estado_codigo) references Estado

dez 30, 2019 10:21:40 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException

WARN: GenerationTarget encountered exception accepting command : Error executing DDL alter table Cidade add constraint FKqed4xf4didnaoj5gas05bjwd9 foreign key (estado_codigo) references Estado via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL alter table Cidade add constraint FKqed4xf4didnaoj5gas05bjwd9 foreign key (estado_codigo) references Estado via JDBC Statement

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:433)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:249)

at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:310)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)

at com.meson.sistemavendas.util.HibernateUtil.criarFabricaDeSessoes(HibernateUtil.java:43)

at com.meson.sistemavendas.util.HibernateUtil.(HibernateUtil.java:16)

at com.meson.sistemavendas.Tela.TelaCidade.(TelaCidade.java:67)

at com.meson.sistemavendas.Tela.TelaCidade$1.run(TelaCidade.java:40)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: org.postgresql.util.PSQLException: ERROR: constraint fkqed4xf4didnaoj5gas05bjwd9 for relation cidade already exists

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:562)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:406)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:398)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

 28 more
dez 30, 2019 10:21:40 AM org.hibernate.internal.SessionImpl createCriteria

WARN: HHH90000022: Hibernates legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead

Hibernate: select this_.codigo as codigo1_1_0_, this_.nome as nome2_1_0_, this_.sigla as sigla3_1_0_ from Estado this_

java.lang.ClassCastException: com.meson.sistemavendas.Domain.Estado cannot be cast to java.lang.String

at com.meson.sistemavendas.Tela.TelaCidade.(TelaCidade.java:70)

at com.meson.sistemavendas.Tela.TelaCidade$1.run(TelaCidade.java:40)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)
Dfodani

acho que to quase la no combobox

JComboBox comboBox = new JComboBox();
		
			Criteria consulta = sessao.createCriteria(Estado.class);	
			consulta.addOrder(Order.asc("nome"));
			List<Estado> resultado = consulta.list();
			 for(Estado estado_ : resultado) {
				 comboBox.addItem(estado_);
	             }

ele esta jogando no combo estado codigo 27 nao joga o estado mas aparece o código ?

Dfodani

Resolvi o erro de salvar elementos agora só falta o combobox

lina

Oi,

Quando você faz uso da variável estado_ dessa forma, significa que você está utilizando o método toString() deste objeto.

Provavelmente a classe Estado contem atributos privados dentro dela, e provavelmente você deve possuir algum método getEstado() que retorna o estado propriamente dito. Ou não?

comboBox.addItem(estado_.getEstado());

Tchauzin!

Dfodani

agora deu certo obrigado meu problema agora vai ser salvar os elementos do jcombobox kkkkkkkk

Dfodani

o salvar ta quase pronto ja rsrs agora so falta eu descobrir como salva o combobox no banco rs

btnSalvar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e){//GEN-FIRST:event_jButton1ActionPerformed

// TODO add your handling code here:

Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();

Transaction transacao = null;

Cidade cidade = new Cidade();
try {
			                    cidade.setNome(textField.getText());
			                    Estado codigo = resultado.get(comboBox.getSelectedIndex());
						transacao = sessao.beginTransaction();
						sessao.save(cidade);
						transacao.commit();
					} catch (RuntimeException erro) {
						if (transacao != null) {
							transacao.rollback();
						}
						throw erro;
					} finally {
						sessao.close();
					}
			 }});
}

	}
Dfodani

Exception in thread “AWT-EventQueue-0” org.hibernate.PropertyValueException: not-null property references a null or transient value : com.meson.sistemavendas.Domain.Cidade.estado

Criado 27 de dezembro de 2019
Ultima resposta 30 de dez. de 2019
Respostas 64
Participantes 4