Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Spring, Hibernate, Blob carregamento preguiçoso


Estou confuso. Emmanuel Bernard escreveu em ANN-418 que @Lob são preguiçosos por padrão (ou seja, você nem precisa usar o @Basic(fetch = FetchType.LAZY) anotação).

Alguns usuários relatam que o carregamento lento de um @Lob não funciona com todos os drivers/banco de dados .

Alguns usuários relatam que funciona ao usar instrumentação de bytecode (javassit? cglib?).

Mas não consigo encontrar nenhuma referência clara de tudo isso na documentação.

No final, a solução alternativa recomendada é usar um mapeamento um-para-um "falso" em vez de propriedades. Remova os campos LOB de sua classe existente, crie novas classes referentes à mesma tabela, mesma chave primária e apenas os campos LOB necessários como propriedades. Especifique os mapeamentos como um para um, fetch="select", lazy="true". Desde que seu objeto pai ainda esteja em sua sessão, você deve obter exatamente o que deseja. (basta transpor isso para anotações).