O atributo itens da Compra não estão pegando o json. Eu já debuguei várias vezes e era pra dar tudo certo. No momento que estou salvando a compra - conseguir ver pelo debug que o json estava sendo passado certo. só que depois de persistir no banco de dados, quando eu vou conferir aparece errado. No atributo intens aparece uns números como "50649". não aparece nenhuma mensagem de erro para isso, simplesmente salva um valor errado.
Em CarrinhoCompras:
public void finalizar(Usuario usuario) {
Compra compra = new Compra();
compra.setUsuario(usuario);
compra.setItens(toJson());
compraDao.salvar(compra);
}
private String toJson() {
JsonArrayBuilder builder = Json.createArrayBuilder();
for (CarrinhoItem item : itens) {
builder.add(Json.createObjectBuilder()
.add("titulo", item.getLivro().getTitulo())
.add("preco", item.getLivro().getPreco())
.add("quantidade", item.getQuantidade())
.add("total", getTotal(item))
);
}
return builder.build().toString();
}
até aqui. eu conseguir ver debugando que o json estava indo correto, mas por alguma razão desconhecida na hora de persistir, ele salva um número no lugar.
CompraDao:
public class CompraDao implements Serializable {
private static final long serialVersionUID = -7499464687101467281L;
@PersistenceContext
private EntityManager manager;
public void salvar(Compra compra) {
System.out.println(compra.toString());
manager.persist(compra);
}
}