سؤال

هل لدى أي تجربة أي خبرة في إنشاء تطبيقات قاعدة بيانات في جافا، خاصة مع السبات، وتستهدف في وقت واحد قواعد بيانات Oracle and Postgeres؟

على وجه الخصوص أنا أبحث في Oracle المكاني وما بعده. نريد إنشاء جافا مقرا لها والتي يمكن استخدامها مع كل من نهايات Oracle المكانية ومرحلة ما بعد الظهر. لقد استخدمت السبات مع كلا من قواعد البيانات هذه ولكن أبدا بقصد استهداف كليهما. يمكنني إنشاء سيناريوهات حيث يمكن أن يولد نفس التعليمات البرمجية نتائج مختلفة حسب قاعدة البيانات التي يتم استخدامها.

ربما يمكن أن يعالج هذا السبات هذا ولكن سيكون من الجيد أن نسمع ما إذا كان هناك أي مشاكل معروفة.

كين

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

المحلول

جنبا إلى جنب مع السبات يمكنني أن أوصي السبات المكاني ، امتداد يدعم MySQL، Oracle و Postgre، مع ملحقات GIS الخاصة بكل منها.

بعض المزالق التي واجهتها:

كن على دراية، فإن تكوين لهجات لم تكن تافهة للقيام بشكل صحيح. تأكد من عدم إعادة تكوين لهجات اللوحات لكل عبارة، كما حدث لي.

اعتمادا على الميزات من Hiberenatespatial التي تستخدمها، قد تغلق في عدد محدد من السبات

يمكنك استخدام معايير API فقط، HQL غير مدعوم مباشرة.

الرمز الخاص بي باستخدام HiberenatesPatial تبدو وكأنها هذه:

  if (query.getMaxDistance() != null && query.getCenter() != null) {
        basicCriteria.add(SpatialRestrictions.within("coordinate", GeoidCircleFactory.circle(query.getCenter(), query.getMaxDistance())));
    }

سوف تعاني من بعض القيود المباشرة تماما وبعضها البعض تحت. أود أن أوصي باسترخاء بعض طلبك يحتاج إلى تحسين احتمالات DB. على سبيل المثال، فإن الاستعلامات في "مساحة الزاوية" هي أسهل بكثير للقيام بكثير مما كانت عليه في "مساحة Euclidean".

يبدو الكود الوارد في GeoidCircleFactory مخيفا جدا ... :)

نصائح أخرى

بالإضافة إلى استخدام لهجات السبات، ستحتاج إلى أداة إدارة إنشاء قاعدة بيانات حدوبري والذي سيسمح بإخلاص رمز الإبداع بعيدا عن بناء الجملة المحدد لقواعد البيانات المختلفة.

يعالج السبات استهداف قواعد بيانات مختلفة باستخدام لهجة التجريد. لا تحتاج إلى إجراء أي تغييرات على طلبك نفسه فقط تكوين السبات لكل قاعدة بيانات.

يمكنك إما تحديدها في التكوين الخاص بك لهجة استخدامها باستخدام قاعدة البيانات الخاصة بك أو السماح بإسبات السبات لاستخدام إعدادات برنامج تشغيل JDBC لتحديد الدلالة المناسبة.

بعد تلقي التعليق، هل نظرت إلى سبتانية سباكيةب إنه امتداد لإسبات السبات لدعم البيانات الجغرافية من خلال توفير أنواع السبات اللازمة ولهجاتها.

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