Как заставить Hibernate 3.3 или 3.5 использовать CGLib вместо Javassist? - PullRequest
6 голосов
/ 25 февраля 2010

Можно ли заставить Hibernate 3.3 или 3.5 использовать CGLib вместо Javassist? В моем файле свойств я установил

hibernate.bytecode.provider = cglib

Но, похоже, это не так. Есть мысли?

Ответы [ 3 ]

7 голосов
/ 25 февраля 2010

Кажется, некоторые люди неправильно прочитали мой ответ, поэтому я перефразирую: ваш hibernate.properties выглядит правильно, свойство хорошо определено, оно должно работать. Итак, извините за вопрос, но находится ли CGlib на пути к классам?

Обновление: Только что протестировано и у меня работает. Вот вывод, который я получаю во время инициализации:

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: обратите внимание, что Поддержка CGLIB недавно устарела (это не означает, что вы не сможете использовать CGLIB, но интеграция больше не поддерживается).

1 голос
/ 09 декабря 2010

Помните, что библиотека CGLIB не разрабатывается около 4 лет. Однако вы должны сделать все, чтобы ваш код работал с Javassist, который все еще активно поддерживается.

1 голос
/ 28 февраля 2010

Да, также поставить

hibernate.properties 

в какую-нибудь исходную папку и не забудьте иметь hibermate-cglib-repack в зависимости:

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