JPA এবং স্প্রিং ডেটা JPA এর মধ্যে পার্থক্য কী?


144

স্প্রিং ডেটা-জেপিএ এবং জেপিএ-র মধ্যে পার্থক্য সম্পর্কে আমি কিছুটা বিভ্রান্ত। আমি জেপিএ সম্পর্কে জানি যে এটি জনপ্রিয় ওআরএম প্রযুক্তি ব্যবহার করে একটি জাভা অবজেক্টগুলিকে একটি সম্পর্কিত সম্পর্কিত ডাটাবেসে টিকিয়ে রাখার জন্য একটি স্পেসিফিকেশন।

অন্য কথায়, জেপিএ ইন্টারফেস এবং অন্যান্য ওআরএম প্রযুক্তি সরবরাহ করে, জেপিএ সরবরাহকারী যেমন হাইবারনেট হিসাবে পরিচিত সেই ইন্টারফেসগুলি প্রয়োগ করে।

এখন, স্প্রিং ডেটা জেপিএ ঠিক কী?

স্প্রিং ডেটা জেপিএ কি জেপিএর উপরে আরও কিছু কার্যকারিতা (ইন্টারফেস) যুক্ত করেছে এবং এখনও এটি কেবল নির্দিষ্ট করা আছে বা এটি জেপিএ সরবরাহকারীও?

আমি দেখেছি স্প্রিং ডেটা জেপিএ সংগ্রহস্থলগুলির চারপাশে কাজ করে (ডিএও স্তর: যদি আমি ভুল না হয়)। সুতরাং, আমার অর্থ, কীভাবে এটি 'স্প্রিং ডেটা জেপিএ + হাইবারনেট' ব্যবহার করে বা কেবলমাত্র 'হাইবারনেট' নির্দেশিকা ব্যবহার করে আলাদা হয়?

উত্তর:


126

আমি স্প্রিংকে দেখেছি, জেপিএ সংগ্রহস্থলগুলির চারপাশে কাজ করে (ডিএও স্তর: যদি আমি ভুল না হয়)। সুতরাং আমি বোঝাতে চাইছি কীভাবে 'স্প্রিং জেপিএ + হাইবারনেট' ব্যবহার করে বা কেবল 'হাইবারনেট' সরাসরি ব্যবহার করে?

যেমনটি আপনি বলেছিলেন, জেপিএ হ'ল একটি স্পেসিফিকেশন, যখন হাইবারনেট সেই নির্দিষ্টকরণের একটি নির্দিষ্ট বাস্তবায়ন (এই বাস্তবায়নগুলি সাধারণত সরবরাহকারী হিসাবে উল্লেখ করা হয় )। হাইবারনেট ব্যবহার করে আপনি সেই সরবরাহকারীর সাথে নিজেকে বেঁধে রাখেন যখন প্রয়োজন হয় তখন অন্য বিকল্পের দিকে যাওয়ার জন্য আপনার স্বাধীনতা সীমাবদ্ধ করে (উদাহরণস্বরূপ, আপনি এর পরিবর্তে EclipseLink বা ObjectDB ব্যবহার করতে চান কারণ হাইবারনেটে একটি ত্রুটি রয়েছে যা আপনার বিকাশ প্রক্রিয়াটি থামিয়ে দেয়)।

বরাত দিয়ে স্প্রিং ডাটা JPA এর ডকুমেন্টেশন:

কোনও অ্যাপ্লিকেশনটির ডেটা অ্যাক্সেস স্তর প্রয়োগ করা বেশ কিছু সময়ের জন্য জটিল umbers অনেক বেশি বয়লারপ্লেট কোড লিখতে হয়েছিল। ডোমেন ক্লাসগুলি রক্তশূন্য ছিল এবং প্রকৃত অবজেক্ট ভিত্তিক বা ডোমেন চালিত পদ্ধতিতে ডিজাইন করা হয়নি।

এই দুটি প্রযুক্তিই ব্যবহার করে সমৃদ্ধ ডোমেন মডেলের দৃistence়তা সম্পর্কিত ডেভেলপারদের জীবনকে অনেক সহজ করে তোলে। তবুও ভাণ্ডারগুলি কার্যকর করতে বয়লারপ্লেট কোডের পরিমাণ বিশেষত এখনও বেশ বেশি। সুতরাং স্প্রিং ডেটার সংগ্রহস্থল বিমূর্তির লক্ষ্য হ'ল বিভিন্ন অধ্যবসায়ী স্টোরের জন্য ডেটা অ্যাক্সেস স্তরগুলি কার্যকর করার প্রচেষ্টাটিকে উল্লেখযোগ্যভাবে হ্রাস করা।

সংক্ষিপ্তসার হিসাবে, এটি জেপিএ শীর্ষে রয়েছে বিমূর্ততার আরও একটি স্তর যুক্ত করে, একটি বসন্তের প্রসঙ্গে পার্সিস্টিন লেয়ারকে সমর্থন করার জন্য একটি স্ট্যান্ডার্ড-ভিত্তিক ডিজাইন সংজ্ঞায়িত করার ধরণ । এই সংজ্ঞায়িত ইন্টারফেসগুলি (স্প্রিংয়ের কাছে পরিচিত) পরিষেবাগুলি সরবরাহ করে যা ফ্রেমওয়ার্কটি JPA ব্যবহার করে ফলাফলগুলি পরিবেশন করে। স্প্রিং প্রকল্পটি স্ক্যান করতে এবং এটি সন্ধান করতে পারে এমনভাবে আপনি একটি সংগ্রহস্থলটিকে সংজ্ঞায়িত করেন:

<repositories base-package="com.acme.repositories" />

সুতরাং, আপনাকে এটি কোনও ধারক প্রসঙ্গে বা এর বাইরে ব্যবহার করার অনুমতি দেয়।

এখন স্প্রিং ঠিক কী, জেপিএ। স্প্রিং, জেপিএ জেপিএর উপরে আরও কিছু কার্যকারিতা (ইন্টারফেস) যুক্ত করেছে এবং এখনও এটি কেবল নির্দিষ্ট করা আছে বা এটি জেপিএ সরবরাহকারীও?

স্প্রিং ডেটা জেপিএ আপনার সংজ্ঞা সরবরাহকারীর ব্যবহার করে জেপিএ স্পেসিফিকেশন উল্লেখ করে হুডের নীচে সমর্থিত সংগ্রহস্থলগুলি প্রয়োগ করার জন্য একটি সংজ্ঞা সরবরাহ করে।


1
স্প্রিং পরিচালিত সত্তাগুলির একটি সংগ্রহকে কি আমি সংগ্রহস্থল বলতে পারি? আমি জানি না কেন তবে স্প্রিং জেপিএ সমর্থন সংগ্রহশালা ব্যবহার করে ইজেবির এনটিটি ম্যানেজারের সাথে খুব মিল বলে মনে হচ্ছে - সঠিক চিন্তাভাবনা কি তারা তাদের উদ্দেশ্যতে সম্পূর্ণ আলাদা? আগাম ধন্যবাদ. মুস্তাফা।
মোস্তফা

1
@ মুস্তফা বেশিরভাগ সমাধানের সাধারণ ভিত্তি রয়েছে। লক্ষ্যটি একই হতে পারে, জড়িত ইন্টারফেসের কারণে বাস্তবায়ন আলাদা।
ফ্রিটজ

35

জাভা পার্সেস্টন এপিআই, কখনও কখনও জেপিএ হিসাবে পরিচিত, এটি জাভা প্ল্যাটফর্ম, স্ট্যান্ডার্ড সংস্করণ (জাভাএসই) এবং জাভা প্ল্যাটফর্ম, এন্টারপ্রাইজ সংস্করণ (জাভা) ব্যবহার করে অ্যাপ্লিকেশনগুলিতে রিলেশনাল ডেটা পরিচালনা করে এমন একটি জাভা ফ্রেমওয়ার্ক।

এই প্রসঙ্গে অধ্যবসায় তিনটি ক্ষেত্রকে কভার করে:

  • এপিআই নিজেই, javax.persistenceপ্যাকেজে সংজ্ঞায়িত ।

  • জাভা দৃistence়তা অনুসন্ধানের ভাষা (জেপিকিউএল)।

  • অবজেক্ট-রিলেশনাল মেটাডেটা।

    এখানে চিত্র বর্ণনা লিখুন

স্প্রিং ডেটা জেপিএ ছাতার স্প্রিং ডেটা প্রকল্পের একটি অংশ যা জেপিএ ভিত্তিক সংগ্রহস্থলগুলি কার্যকর করা সহজ করে তোলে।

বৈশিষ্ট্য:

  • স্প্রিং এবং জেপিএ-এর উপর ভিত্তি করে সংগ্রহস্থলগুলি তৈরি করতে পরিশীলিত সমর্থন
  • কোয়েরিডিএসএল এর জন্য সমর্থন পূর্বাভাস দেয় এবং এইভাবে নিরাপদ জেপিএ ক্যোয়ারী টাইপ করে
  • ডোমেন শ্রেণীর স্বচ্ছ নিরীক্ষণ
  • পৃষ্ঠাসমূহ সমর্থন, গতিশীল ক্যোয়ারি এক্সিকিউশন, কাস্টম ডেটা অ্যাক্সেস কোড সংহত করার ক্ষমতা
  • @Queryবুটস্ট্র্যাপ সময় টীকাগুলি প্রশ্নের বৈধতা
  • এক্সএমএল ভিত্তিক সত্তা ম্যাপিংয়ের জন্য সমর্থন
  • জাভা কনফিগ ভিত্তিক সংগ্রহস্থল কনফিগারেশন প্রবর্তন করে @EnableJpaRepositories

    এখানে চিত্র বর্ণনা লিখুন

3

JPA

জেপিএ হ'ল একটি স্পেসিফিকেশন যা জাভা অবজেক্টগুলি যেভাবে একটি সম্পর্কিত ডেটাবেস সিস্টেমে ম্যাপ করা হয় তা মানক করে। শুধু একটি স্পেসিফিকেশন হচ্ছে, JPA ইন্টারফেস, মত একটি সেট নিয়ে গঠিত EntityManagerFactory, EntityManagerএবং টীকা যা আপনাকে একটি ডাটাবেস সারণিতে একটি জাভা সত্তা বস্তুর মানচিত্র।

এখানে বেশ কয়েকটি জেপিএ সরবরাহকারী রয়েছে, যেমন হাইবারনেট, এক্লিপস লিঙ্ক, বা ওপেন জেপিএ যা আপনি ব্যবহার করতে পারেন।

স্প্রিং ডেটা জেপিএ

স্প্রিং ডেটা জেপিএ একটি জেপিএ ডেটা অ্যাক্সেস বিমূর্ততা। ঠিক জেপিএর মতোই, স্প্রিং ডেটা জেপিএ কোনও জেপিএ সরবরাহকারী ছাড়া কাজ করতে পারে না।

স্প্রিং ডেটা জেপিএ ডিডিডি Repositoryপ্যাটার্ন বা এর সমাধান দেয় DAO (Data Acess Object) pattern। এটি পদ্ধতি নাম কনভেনশনগুলির মাধ্যমে আপনার পক্ষে জেপিএ ক্যোয়ারী উত্পন্ন করতে পারে।

স্প্রিং ডেটা জেপিএ হাইবারনেট, এক্সলিপস লিংক বা অন্য কোনও জেপিএ সরবরাহকারীর সাথে কাজ করতে পারে। স্প্রিং বা জাভা ইই ব্যবহার করার একটি খুব আকর্ষণীয় সুবিধা হ'ল আপনি @Transactionalটীকাটি ব্যবহার করে ঘোষণামূলকভাবে লেনদেনের সীমানা নিয়ন্ত্রণ করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.