Como forçar o Hibernate 3.3 ou 3.5 para usar CGLib em vez de Javassist?
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?
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.