البرمجة

استرجاع البيانات بواسطة jOOQ

في jOOQ، إذا أردت استرجاع صف من الجدول إلى POJO (Plain Old Java Object) تم إنشاؤه تلقائيًا بواسطة jOOQ، يمكنك القيام بذلك باستخدام الأمر fetchOptionalInto كما فعلت في المثال الذي قدمته. لكن عند القيام بعملية الانضمام (Join) بين جدولين، مثل USER و ROLE، يمكنك استخدام join لإنشاء الانضمام ومن ثم استخدام fetchOptionalInto لاسترجاع البيانات إلى الـ POJOs الخاصة بالجدولين.

لنفترض أن لديك جدولين: USER و ROLE، وترغب في استرجاع بيانات متصلة من الجدولين في كائنات POJO لكل جدول. يمكنك القيام بذلك كما يلي:

java
// قم بعملية الانضمام بين الجدولين Record record = dsl.select() .from(USER) .join(ROLE).on(USER.ROLE_ID.eq(ROLE.ID)) .where(USER.U_EMAIL.equal(email)) .fetchOptional(); // استرجاع البيانات إلى POJOs User user = record.into(User.class); Role role = record.into(Role.class);

في هذا المثال، يتم إنشاء الانضمام بين جدولي USER و ROLE باستخدام join، ثم يتم استرجاع البيانات إلى POJOs من خلال record.into(User.class) و record.into(Role.class).

يرجى ملاحظة أنه يجب أن تكون الصفوف المسترجعة متوافقة مع هيكل POJO المحدد.

المزيد من المعلومات

في jOOQ، يمكنك أيضًا استخدام الدالة fetchInto لاسترجاع البيانات من عملية الانضمام (Join) إلى قائمة من الـ POJOs. على سبيل المثال، إذا كنت ترغب في استرجاع قائمة من الـ POJOs لكل جدول، يمكنك استخدام الكود التالي:

java
List users = dsl.select() .from(USER) .join(ROLE).on(USER.ROLE_ID.eq(ROLE.ID)) .where(USER.U_EMAIL.equal(email)) .fetchInto(User.class); List roles = dsl.select() .from(USER) .join(ROLE).on(USER.ROLE_ID.eq(ROLE.ID)) .where(USER.U_EMAIL.equal(email)) .fetchInto(Role.class);

في هذا المثال، يتم استرجاع البيانات من الجدولين USER و ROLE إلى قوائم من الـ POJOs باستخدام fetchInto(User.class) و fetchInto(Role.class) على التوالي.

كما يمكنك استخدام الدالة fetchGroups لاسترجاع البيانات من عملية الانضمام (Join) إلى مجموعات من الـ POJOs. على سبيل المثال، يمكنك استخدام الكود التالي:

java
Map> map = dsl.select() .from(USER) .join(ROLE).on(USER.ROLE_ID.eq(ROLE.ID)) .where(USER.U_EMAIL.equal(email)) .fetchGroups(User.class, Role.class); User user = map.keySet().iterator().next(); List roles = map.get(user);

في هذا المثال، يتم استرجاع البيانات من الجدولين USER و ROLE إلى مجموعات من الـ POJOs باستخدام fetchGroups(User.class, Role.class)، ثم يمكنك الوصول إلى البيانات باستخدام map.keySet() و map.get(user).

يُرجى ملاحظة أنه يجب أن تكون هناك علاقة مناسبة بين الجدولين في قاعدة البيانات لضمان استرجاع البيانات بشكل صحيح.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر