استعلام غامض
يمكن أن يؤدي استخدام بيانات الربيع إلى تقليل كتابة عبارات SQL للمطورين ، وحتى لا تحتاج إلى كتابة عبارات SQL على الإطلاق. ومع ذلك ، خلال عملية التطوير ، سيكون هناك دائمًا سيناريوهات ومخاطر معقدة من جميع الأحجام.
تتطلب وحدة وظيفية في المشروع اليوم استعلام غامض. الكلمة الرئيسية الاستعلام الغامضة "مثل" في SQL الأصلي ، وواجهة مستودع بيانات SPRING JPA لها أيضًا مثل حقول الكيانات. ولكن إذا كنت تستخدمه مباشرة ، ثم تهانينا ، كنت محظوظًا لأن لديك مأزق.
بيانات الربيع JPA استعلام غامض الاستخدام الصحيح
أولاً ، نقوم بإنشاء كيان لتخزين بياناتنا
/** * Entity * * Author Chentai * date 18/04/22 */ @data @entity @equalsandhashCode (callsuper = true) example exampleentity {ideDeDeratedValue (generator = "uuid") @genericgenerator (name = "uuid" ، strategy = "uuid") اسم المستخدم الخاص بالسلسلة الخاصة ؛ الأسماء الخاصة بالسلسلة الخاصة ؛}بعد ذلك ، قم بإنشاء واجهة المستودع المقابلة لكياننا
/** * Author chentai * date 18/04/22 */ @ropositorypublic interface examplerepository يمتد crudrepository <exampleentity ، string> {/** اسم المستخدم username * regurn {link list <exampleenTity>} */ list <exampleentity> findallbydevicenamesContainingAnduserName (string devicenames ، username string) ؛ / *** استخدام خطأ في الاستعلام الغامض* حيث لا يدعم اسم المستخدم الاستعلام الغامض ، يدعم Devicenames الاستعلام الغامض** param devicenames query query devicenames* param username username* return اسم المستخدم)؛ } أخيرًا ، قمنا باختبار طريقتين في ExamplerePository في فئة الاختبار (لا يتم عرض نتائج الاختبار في الوقت الحالي) ووجدنا أن طريقة findallbydevicenameslikeandusername لم تستعد بشكل صحيح عن النتيجة ، والنتيجة التي تم الحصول عليها هي نتيجة الاستعلام الدقيق. و FindAllbydevicenamesContainingAnduserName يحصل على نتيجة الاستعلام الغامض الذي نريده.
لخص
إذا كنت ترغب في استخدام استفسارات غامضة دون كتابة عبارات SQL الأصلية في مشروعك ، فيرجى استخدام الكلمة الرئيسية المحتوية بدلاً من أخذها كأمر مسلم به أنه مثل الكلمات الرئيسية يتم استخدامها أصليًا. مثل الكلمات الرئيسية تستخدم أيضا في JPA.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.