Pergunta

Ainda é possível forçar o Hibernate 3.3 ou 3.5 para usar CGLib em vez de Javassist?No meu arquivo de propriedades, defina

hibernate.bytecode.provider = cglib

Mas este não parece fazê-lo.Quaisquer pensamentos?

Foi útil?

Solução

Parece que algumas pessoas não leram minha resposta corretamente, então vou reformular: seu hibernate.properties Parece correto, a propriedade está bem definida, deve funcionar. Então, desculpe a pergunta, mas o CGLIB está no caminho de classe?

Atualizar: Acabei de testar e funciona para mim. Aqui está a saída que recebo no momento da inicialização:

15 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.0.SP1
18 [main] INFO org.hibernate.cfg.Environment - loaded properties from resource hibernate.properties: {hibernate.bytecode.use_reflection_optimizer=false, hibernate.bytecode.provider=cglib}
20 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib

PS: Observe que O suporte do CGLIB foi preterido Recentemente (isso não significa que você não poderá usar o CGLIB, mas a integração que não é mais mantida).

Outras dicas

Sim, também coloque

hibernate.properties 

em alguma pasta de origem e lembre-se de ter o hibermato-cglib-repack nas dependências:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-cglib-repack</artifactId>
    <version>2.1_3</version>
</dependency> 

Lembre-se de que a biblioteca CGLIB não é desenvolvido por cerca de 4 anos.Você deve fazer de tudo, no entanto, fazer o seu código funcionar com Javassist, que ainda é mantido activamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top