Olá pessoal,
Na 5º aula do curso o instrutor fala sobre o debate entre salvar arquivos (no caso imagens) diretamente no banco de dados ou deixa-los no sistema de arquivos no SO.
Eu gostaria de construir uma aplicaçao onde as capas dos livros fossem armazenadas em uma tabela de um banco de dados. Então, criei uma entidade imagem com os seguintes atributos:
private Long id;
private byte[] imagem;
private String descricao;
private Livro livro;
A imagem é salva como um array de bytes (LONGBLOB).
Até aqui tudo bem, a imagem é de fato salva (observando os bytes pelo MySQL Workbench, eles formam a imagem corretamente e ao busca-la no código a varivael correspondete é populada). Minha dúvida é como fazer para exibi-la, já que ela está apenas em mémoria, na forma de um array de bytes, não tenho uma URL que eu possa inserir no
<img src="">.
Vi que o primefaces tem um compontente:
<p:graphicImage>
cuja descrição é "GraphicImage is capable of presenting images that are created programatically at runtime or images stored in a database."
Pensei que ele seria capaz de reconhecer os bytes da imagem e passei como value para ele o byte[] populado com o retorno do banco, mas não funcionou.
Alguém poderia me dar uma visão geral do que preciso fazer para consgeuir exibir as imagens ?