كيفية إجبار السبات 3.3 أو 3.5 على استخدام CGLIB بدلاً من Javassist؟

StackOverflow https://stackoverflow.com/questions/2330373

  •  22-09-2019
  •  | 
  •  

سؤال

هل لا يزال من الممكن إجبار السبات 3.3 أو 3.5 على استخدام CGLIB بدلاً من Javassist؟ في ملف الخصائص ، قمت بتعيين

hibernate.bytecode.provider = cglib

لكن هذا لا يبدو أنه يفعل ذلك. أي أفكار؟

هل كانت مفيدة؟

المحلول

يبدو أن بعض الناس لم يقرأوا إجابتي بشكل صحيح ، لذا سأعيد صياغة: hibernate.properties يبدو صحيحًا ، يتم تعريف العقار جيدًا ، يجب أن يعمل. لذلك ، آسف على السؤال ولكن هل CGLIB على classpath؟

تحديث: اختبرت للتو ويعمل بالنسبة لي. هنا هو الإخراج الذي أحصل عليه في وقت التهيئة:

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

ملاحظة: لاحظ ذلك تم إهمال دعم CGLIB في الآونة الأخيرة (هذا لا يعني أنك لن تكون قادرًا على استخدام CGLIB ولكن التكامل الذي لم يتم الحفاظ عليه بعد الآن).

نصائح أخرى

نعم ، ضع أيضا

hibernate.properties 

في مجلد بعض المصدر وتذكر أن يكون لديك hibermate-cglib-repack في التبعيات:

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

تذكر أن مكتبة CGLIB لم يتم تطويرها لمدة 4 سنوات. يجب عليك أن تفعل كل شيء لجعل الكود الخاص بك يعمل مع Javassist ، والذي لا يزال يتم الحفاظ عليه بنشاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top