سؤال

هل من الممكن الوصول إلى SQL الذي تم إنشاؤه بواسطة JPQL؟

أرغب في استخدام SQL لإنشاء طريقة عرض لاحقًا لأغطيتي.

أنا أستخدم السبات إذا كان الأمر مهمًا.

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

المحلول

لذلك تحتاج إلى كتابة تطبيق JPQL الخاص بك ثم :-) بعد كل شيء ، تحويل JPQL إلى SQL للحصول على مخزن بيانات RDBMS هو ما هو تطبيق JPQL. حظا طيبا وفقك الله!

من المؤكد أنه يمكنك الاستفادة من تنفيذ JPQL الحالي ، سواء كان السبات ، أو Eclipselink ، أو Datanucleus ... وبما أنها جميعًا مفتوحة المصدر ، يجب عليك الذهاب إلى قاعدة الشفرة الخاصة بهم.

نصائح أخرى

هل من الممكن الوصول إلى SQL الذي تم إنشاؤه بواسطة JPQL؟

يمكنك الوصول إلى SQL String من بيات شتوى Interceptor, أكثر دقة من الطريقة Interceptor.html#onPrepareStatement(java.lang.String)

onpreparestatement

String onpreparestatement(String sql) Called when sql string is being prepared. المعلمات: sql - sql to be prepared عائدات: original or modified sql

إذا قررت الذهاب بهذه الطريقة ، فإن الخيار الأفضل هو تمتد EmptyInterceptor ولتجاوز الأساليب التي تريدها فقط.

يمكنك ربط اعتراضك باستخدام الإعلان التالي في الخاص بك persistence.xml:

<properties>
  <property name="hibernate.ejb.interceptor" value="com.acme.MyInterceptor"/>
</properties>

يمكنك تعيين ملف hibernate.show_sql خاصية إلى صواب ، ثم سيتم عرض جميع SQL على وحدة التحكم.

<property name="hibernate.show_sql">true</property>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top