Eu implementei a funcionalidade para adicionar o livro, quantidade e ano da venda na tabela e exibir no grafico, porém quando adiciono um segundo livro com o ano que nao seja 2016, ele adiciona no primeiro livro.
Ex: - Adiciono livro1, ano 2016, quantidade 50. Exibe no grafico corretamente.
- Adiciono livro2, ano 2017, quantidade 100.
ao inves de ele criar a nova coluna para o livro 2 com o ano 2017 preenchido, ele preenche a segunda coluna no livro1. Igual mostra na imagem a baixo. Gostaria que ele adicionasse corretamente, mas não sei o que fazer.
Imagem da tela mostrando o grafico
http://pt-br.tinypic.com/r/2j4t2tt/9
public class VendasBean implements Serializable{
//demais atributos
private BarChartModel vendasModel;
@PostConstruct
public void init() {
createVendasModel();
}
private void createVendasModel() {
vendasModel = initVendasModel();
// vendasModel.setTitle("Vendas");
vendasModel.setLegendPosition("ne");
Axis xAxis = vendasModel.getAxis(AxisType.X);
xAxis.setLabel("Título");
Axis yAxis = vendasModel.getAxis(AxisType.Y);
yAxis.setLabel("Quantidade");
yAxis.setMin(0);
yAxis.setMax(1000);
}
private BarChartModel initVendasModel() {
BarChartModel model = new BarChartModel();
Set<Integer> buscaAno = buscaAno();
for (Integer ano : buscaAno) {
ChartSeries vendaSeries = new ChartSeries();
List<Venda> vendas = buscaVendas(ano);
vendaSeries.setLabel(Integer.toString(ano));
for (Venda venda : vendas) {
vendaSeries.set(venda.getLivro().getTitulo(), venda.getQuantidade());
}
model.addSeries(vendaSeries);
}
return model;
}
@Transacional
public List<Venda> buscaVendas(Integer ano) {
List<Venda> buscaVendas = this.vendaDao.buscaVendas(ano);
return buscaVendas;
}
@Transacional
public Set<Integer> buscaAno(){
List<Integer> anos = vendaDao.buscaAno();
Set<Integer> anosSet = new TreeSet<Integer>(anos);
return anosSet;
}
//demais metodos
}
No meu banco
mysql> select * from venda;
+----+------+------------+----------+
| id | ano | quantidade | livro_id |
+----+------+------------+----------+
| 86 | 2016 | 123 | 1 |
| 87 | 2017 | 123 | 2 |
+----+------+------------+----------+
2 rows in set (0.00 sec)