سؤال

لدي فصل ملخص يحتوي على قائمة بالصفات. تحتوي الجودة على اسم سلسلة وقيمة int. يتم تخزين هذه البيانات في بنية DB غير طبيعية ، جدول واحد فقط ، لكل من الملخص والجودة.

جدول الجودة:

ID ، Somefileds ، QualityName1 ، QualityValue1 ، QualityName2 ، QualityValue2 ، QualityName3 ، QualityValue3

لكل أزواج جودة وأزواج القيمة ، يجب إدراج كائن جودة جديد في فئة الملخص.

كيفية تعيين هذا في السبات (رسم الخرائط XML السباتية)؟

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

المحلول

ليس من الواضح كيف Quality يجب "إدراج" الكائنات في Summary فئة الحامل ولكني أعتقد أن نوع المستخدم المخصص (أيضًا o.h.u.UserType أو o.h.u.UserCollectionType) هو الطريق للذهاب هنا.

الرجوع إلى القسم 5.2.3. أنواع القيمة المخصصة في الوثائق لمزيد من التفاصيل (لا يوجد الكثير لتقوله حول التعيين ، ما عليك سوى تحديد نوع المستخدم المخصص الخاص بك باسم type في التعيين).

نصائح أخرى

تمكنت من إصلاحه مع تطبيق مخصص مركب. يبدو ملف التعيين على النحو التالي:

<property name="qualities" type="com.foo.bar.QualityCompositeUserType">
        <column name="linkName1" />
        <column name="linkQuality1" />
        <column name="linkName2" />
        <column name="linkQuality2" />
        <column name="linkName3" />
        <column name="linkQuality3" />
</property>

refretedClass في compositeUserType هي قائمة. إنها مجرد مسألة الحصول على القيم من القائمة وتعيينها إلى المعلمات في البيان المعد. (وملء بالرقم إذا كانت القيم مفقودة في قائمة الصفات).

طريقة Nullsafeget أسهل. أقوم فقط بإنشاء قائمة ArrayList جديدة يتم فيها إدراج كائنات جودة جديدة بالقيم من ResultSet.

يمكنني إضافة مثال كامل إذا كنت مهتمًا.

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