قم بإنشاء طبقة خدمة مع السبات
-
26-09-2019 - |
سؤال
أنا أولد .hbm.xml
تعيين الملفات و .java
ملفات من مخطط DB ، مع أدوات السبات. سؤالي هو ، هل هناك أي خيار ، لإنشاء فصول الخدمة أيضًا؟ هذه هي الفئات التي أقوم بتنفيذها في المتجر () ، والبحث () ، و delete () ، وما إلى ذلك .... أعلم أنه بالنسبة لـ C# ، هناك العديد من الحلول لتوليد كل شيء تقريبًا. أنا أبحث عن نفس الشيء ، ولكن مع السبات. هل هنالك أي؟
المحلول
إن توليد "الخدمات" لا معنى له بالنسبة لي لأن الخدمات تنفذ عادة منطق الأعمال (لا يمكن لسباق السبات توليدها بطريقة سحرية).
الآن ، إذا كان ما تعنيه هو رمز الوصول إلى البيانات ، أي DAOS (فضح وتنفيذ أساليب ومكتشفات CRUD) ، ثم أدوات السبات تستطيع أن تفعل ذلك. هذا هو رمز داو (.java) الخيار على التقاط المكون الإضافي Eclipse ظاهر أدناه:
alt text http://docs.jboss.org/tools/2.0.0.ga/hibernatetools/en/html/images/codegenexporters.png
أي ما يعادل مهمة النمل هو hbm2dao
.
لكنني شخصياً لا أستخدم هذه الميزة وسأذهب طريق دوفمو.
نصائح أخرى
لا يوجد خيار لإنشاء الخدمات.
يجب أن تكون قادرًا على كتابة واجهة DAO عامة واحدة وتنفيذها مع السبات.
مثله:
package persistence;
import java.io.Serializable;
import java.util.List;
public interface GenericDao<T, K extends Serializable>
{
T find(K id);
List<T> find();
List<T> find(T example);
List<T> find(String queryName, String [] paramNames, Object [] bindValues);
K save(T instance);
void update(T instance);
void delete(T instance);
}
الربيع رو قد يكون لديك ما تريد.
يمكنك تنفيذ طبقة الوصول إلى البيانات عن طريق الإعلان فقط عن واجهات ، وتنفيذها باستخدام وكلاء JDK ، ثم استدعاء طرق السبات. التفاصيل هنا - طبقة بسيطة للوصول إلى البيانات باستخدام السبات.
لقد قمت بتنفيذ هذا وهو يعمل بشكل جيد وقد نمت لتلبية احتياجاتي. لقد قمت بتوسيع نطاق الإضافة () ، إزالة () إلخ.findQueryName
) واستخدام الأدوية الجيلية ، لذلك كل ما أحتاج إلى القيام به لإعلان واجهة الوصول إلى بيانات CRUD الأساسية
public interface SomeObjectDAO extends GenericDAO<SomeObject> {
}