Carregamento lento de campos de blob no Spring e Hibernate
Ao lidar com grandes dados binários (BLOBs) em tabelas de banco de dados, é importante otimizar seus recuperação para evitar problemas de desempenho e consumo de memória. Uma abordagem é usar o carregamento lento, que permite que os dados sejam recuperados somente quando necessário. No entanto, essa técnica às vezes pode representar desafios com o Hibernate e o Spring.
Na sua situação, você configurou seu banco de dados, Spring beans e classe de entidade da seguinte maneira:
Configuração do banco de dados (partes relevantes):
Classe de entidade (anotação relevante):
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "BlobField", columnDefinition = "LONGBLOB")
@Type(type = "org.springframework.orm.hibernate3.support.BlobByteArrayType")
private byte[] blobField;
Apesar de marcar o blobField como preguiçoso, você encontra um OutOfMemoryError ao recuperar grandes quantidades de dados. Isso sugere que o mecanismo de carregamento lento não está se comportando conforme o esperado.
Com base na documentação e nas experiências do usuário, aqui estão alguns fatores que podem influenciar o carregamento lento de BLOBs:
Para resolver seu problema, considere as seguintes etapas:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3