No meu caso tenho uma tabela TipoQuarto que irei puxar
somente o id para tabela Quarto.
Nesse caso é utilizando JPA com Swing.
O mapeamento na "class TpQuarto" é feito dessa forma:
@OneToMany(mappedBy = "tpQuarto")
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
@Column(name = "tpQuarto_id")
private List<Quarto> quartos;
E o mapeamento na "class Quarto" é feito dessa forma:
@ManyToOne
@JoinColumn(name = "tpQuarto_id", nullable = false)
private TpQuarto tpQuarto;
...E em ambas as classes criasse os métodos get's e set's....
No JFrame de cadastro de Quarto é feita a seguinte configuração:
public class JFrameQuarto extends javax.swing.JFrame {
TpQuarto tpQuarto = new TpQuarto();
TpQuartoDAO tpQuartoDAO = new TpQuartoDAO();
TpQuartoController tpQuartoController = new TpQuartoController();
public JFrameQuarto() {
initComponents();
try {
carregaJComboBox();
} catch (Exception ex) {
Logger.getLogger(JFrameQuarto.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void carregaJComboBox() throws Exception{
for (TpQuarto cg : tpQuartoController.listaTpQuarto() ){
jComboBox1.addItem(cg);
}
}
Desse modo carrega automaticamente no JComboBox, mas na hora de visualizar tudo que já foi feito aparecerá dessa forma:
Figura 1 Mostra de forma desconfigurada |
Para funcionar de forma limpa para o usuario adiciona na classe de origem, no caso TpQuarto:
@Override
public String toString() {
return getDescricao();
}
Feito isso aparecerá dessa forma:
Figura 2 Mostra de forma desconfigurada |