Estou com uma dúvida de como fazer uma JTable, onde eu possa relacionar Mercados com Produtos.
Tenho um Bean para Mercado e outro para Produto, ambos contém ID e Nome. E tenho uma classe onde ocorre o relacionamento desses dois, denominada MercadoProduto. O que eu já consegui fazer foi criar a JTable com os nomes dos produtos e nome dos mercados, mas agora preciso que no encontro de cada linha com cada coluna, entre o preço do produto. Segue exemplo abaixo:

PrecoTableModel
public PrecoTableModel() {
this.cache = new HashMap<Integer, MercadoProduto>();
this.cache = loadAllMercadoProduto();
this.listMercadoBean = loadMercados();
this.listProdutoBean = loadProdutos();
this.columnCount = listMercadoBean.size()+1;
this.rowCount = listProdutoBean.size();
}
@Override
public String getColumnName(int columnIndex) {
if(columnIndex == 0)
return "PRODUTO / MERCADO";
if(columnIndex > 0)
return listMercadoBean.get(columnIndex-1).getNome();
return "";
}
@Override
public int getColumnCount() {
return columnCount;
}
@Override
public int getRowCount() {
return rowCount;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (columnIndex == 0) {
return listProdutoBean.get(rowIndex).getNome();
}
if (columnIndex > 0) {
// Como preencher o restante da tabela?
}
return null;
}
private HashMap<Integer, MercadoProduto> loadAllMercadoProduto() {
HashMap<Integer, MercadoProduto> result = new HashMap<Integer, MercadoProduto>();
List<MercadoProduto> list = mercadoProdutoDAO.findAll();
for (int i = 0; i < list.size(); i++) {
MercadoProduto mb = list.get(i);
result.put(i, mb);
}
return result;
}
private List<MercadoBean> loadMercados() {
return mercadoDAO.findAll();
}
private List<ProdutoBean> loadProdutos() {
return produtoDAO.findAll();
}
MercadoProdutoBean
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "merc_prod_id")
private Integer id;
@Column(name = "merc_prod_preco")
private Double preco;
@ManyToOne
@JoinColumn(name = "merc_prod_mercado_id")
private MercadoBean mercado;
@ManyToOne
@JoinColumn(name = "merc_prod_produto_id")
private ProdutoBean produto;
//Getters and Setters removidos
MercadoBean
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "mercado_id")
private Integer id;
@Column(name = "mercado_nome", length = 50)
private String nome;
@OneToMany(mappedBy = "produto", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<MercadoProduto> produto;
//Getters and Setters removidos
ProdutoBean
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "produto_id")
private Integer id;
@Column(name = "produto_nome", length = 50)
private String nome;
@OneToMany(mappedBy = "mercado", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<MercadoProduto> mercado;
//Getters and Setters removidos