জেপিএ এবং হাইবারনেটের মধ্যে পার্থক্য কী? [বন্ধ]


680

আমি বুঝতে পারি যে জেপিএ 2 একটি স্পেসিফিকেশন এবং হাইবারনেট ওআরএমের জন্য একটি সরঞ্জাম। এছাড়াও, আমি বুঝতে পেরেছি যে হাইবারনেটের জেপিএ 2 এর চেয়ে বেশি বৈশিষ্ট্য রয়েছে তবে বাস্তবের দিক থেকে, পার্থক্যটি আসলে কী?

আইবাটিস ব্যবহার করার অভিজ্ঞতা আমার আছে এবং এখন আমি হাইবারনেট বা জেপিএ 2 শিখার চেষ্টা করছি। আমি প্রো জেপিএ 2 বইটি তুলেছি এবং এটি "জেপিএ সরবরাহকারী" হিসাবে উল্লেখ করে চলেছে। উদাহরণ স্বরূপ:

আপনি যদি মনে করেন কোনও বৈশিষ্ট্যটি মানসম্মত করা উচিত, আপনার কথা বলা উচিত এবং আপনার জেপিএ সরবরাহকারীর কাছে এটির জন্য অনুরোধ করা উচিত

এটি আমাকে বিভ্রান্ত করে তাই আমার কয়েকটি প্রশ্ন রয়েছে:

  • একা জেপিএ 2 ব্যবহার করে আমি ডিবি থেকে ডেটা আনতে পারি কেবল আমার পোজোর মন্তব্য করে ot
  • জেপিএ 2 কোনও "জেপিএ সরবরাহকারী" উদাহরণস্বরূপ টপলিংক বা হাইবারনেট ব্যবহার করার কথা? যদি তা হয় তবে একা JPA2 এর তুলনায় JPA2 + হাইবারনেট ব্যবহারের সুবিধা কি বা একা হাইবারনেটের তুলনায়?
  • আপনি একটি ভাল ব্যবহারিক JPA2 বই সুপারিশ করতে পারেন? "প্রো জেপিএ 2" জেপিএ 2-তে বাইবেল এবং রেফারেন্সের মতো মনে হয় (এটি বইয়ের পরবর্তী অর্ধেক না হওয়া পর্যন্ত কোয়েরিতে আসে না)। JPA2- এ কোনও সমস্যা / সমাধানের পদ্ধতির গ্রহণযোগ্য কোনও বই আছে?

2
"জেপিএ এবং হাইবারনেটের মধ্যে পার্থক্য" সম্পর্কে প্রশ্নটি ভুল। ব্যাটাল হাইবারনেট বনাম জেপিএ অর্থহীন। বিভিন্ন ওআরএম বাস্তবায়ন এড়াতে জেপিএর কোনও বাস্তবায়ন জেপিএ এপিআই সহ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।
বেরগুগা মোহাম্মদ আমিন

18
@ বার্গুইগা.এম.আমেন, আমরা যদি ইতিমধ্যে জানতে পারি যে উপরের প্রশ্নটি ভুল। আমাদের আর জিজ্ঞাসা করার দরকার নেই। আমি এই বিষয়ে আগ্রহী।
Nhu Vy

"Org.springframework.orm.jpa.JpaTemplate" এর বসন্তে ব্যবহৃত JpaTemplate এর সাথে আমার একটি বিভ্রান্তি রয়েছে it এটির নিজস্ব ক্রিয়াকলাপ রয়েছে যেমন (অবিরাম,), ((), মার্জ () ইত্যাদি কীভাবে হাইবারনেট ছাড়াই জিনিসগুলি কাজ করছে?
নাইটিন ভার্মা

@ নিতিনভারমা: এটি সত্যই আলাদা একটি প্রশ্ন। যদি আপনার এখনও একটি উত্তর প্রয়োজন হয়, আমি আপনাকে আরও প্রতিক্রিয়া আকৃষ্ট করতে আলাদাভাবে নিজের প্রশ্ন জিজ্ঞাসা করব।
ওয়াওটার

উত্তর:


776

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

আপনি যখন জেপিএ সহ হাইবারনেট ব্যবহার করেন আপনি আসলে হাইবারনেট জেপিএ বাস্তবায়ন ব্যবহার করছেন। এর সুবিধাটি হ'ল আপনি হাইপারনেট জেপিএ প্রয়োগের জেপিএ স্পেসিফিকেশনের আরও একটি বাস্তবায়নের জন্য পরিবর্তন করতে পারেন। আপনি যখন সরল হাইবারনেট ব্যবহার করেন আপনি প্রয়োগের জন্য লক করছেন কারণ অন্যান্য ওআরএমগুলি বিভিন্ন পদ্ধতি / কনফিগারেশন এবং টীকাগুলি ব্যবহার করতে পারে, সুতরাং আপনি কেবল অন্য কোনও ওআরএম এ স্যুইচ করতে পারবেন না।

আরও বিশদ বিবরণের জন্য আমার ব্লগ এন্ট্রি পড়ুন


5
সুতরাং, আপনি যখন জেপিএ সহ হাইবারনেট ব্যবহার করছেন, তখন {java.persistance} টিকাগুলি কার্যকর হবে বা আপনাকে {org.hibernate} টিকা ব্যবহার করতে হবে?
অমৃতা

62
আমি কেবল যুক্ত করতে চেয়েছিলাম যে একটি ওআরএমকে অন্যর সাথে প্রতিস্থাপন করা খুব বিরল একটি উপলক্ষ, তাই আপনি সম্ভবত জেপিএ ব্যবহারের মাধ্যমে এই সুবিধাটি পাবেন না। আপনি জেপিএ দিয়ে যা অর্জন করেন তা হ'ল একটি প্রোটোকল, মান, নামকরণ এবং অন্যান্য কনভেনশন যা আপনি অন্যের সাথে যোগাযোগের জন্য ব্যবহার করতে পারেন।
pubsy

3
@ পাবসি আমি সম্মত, কিন্তু নীতিগতভাবে এটি একটি নির্দিষ্টকরণের বিক্রয় পয়েন্টগুলির মধ্যে একটি।
কেভিন বোয়ারসক্স

6
আপনার প্রশ্নের উত্তর দেওয়ার জন্য আম্রোতা, যখন কেউ জেপিএ-র সাথে হাইবারনেট ব্যবহার করছে, {java.persistance} টিকাগুলি কার্যকর হবে এবং {org.hibernate} টিকা ব্যবহার করার প্রয়োজন হবে না।
শিখর

3
@ জাভাজিইক এটি সত্য যতক্ষণ না যার কোডটি জেপিএতে বর্ণিত কেবলমাত্র ইন্টারফেস ব্যবহার করে is হাইবারনেট করার জন্য নির্দিষ্ট বৈশিষ্ট্যগুলি যদি কেউ ব্যবহার করে তবে তাদের org.hibernateটীকাটি ব্যবহার করতে হবে । এ সম্পর্কে আরও
সূর্যবংশি

632

জেপিএ নাচ, হাইবারনেট নৃত্যশিল্পী।


189
জেপিএ হ'ল আর্ট, হাইবারনেট শিল্পী।
ভাগ্যবান

10
আমি এই বৌদ্ধিক অনুভূতিটি পছন্দ করি :) জেপিএ একজন পরিচালক, হাইবারনেট একজন অভিনেতা।
ব্যবহারকারী 3278897

7
তবে, নৃত্যশিল্পী (হাইবারনেট) নাচ ছাড়া পারফর্ম করতে পারে (জেপিএ) তাই না: /
রেভানথকৃষ্ণকুমার ভি

3
এই উত্তরটি কোনও ব্যাখ্যা দেয় না, কেবল একটি অস্পষ্ট বক্তব্য।
আমির কোস্ট

11
এই রূপক বোঝার যোগ করে না। যদি আপনি ইতিমধ্যে পার্থক্যটি জানেন তবে আপনি এটি মজাদার খুঁজে পাবেন। আপনি যদি পার্থক্যটি না জানেন তবে আপনি এটি এখনও জানতে পারবেন না।
নিক ভলিংকিন

158

কিছু জিনিস JCP এর ভাষা এবং বোঝার historicalতিহাসিক দৃষ্টিকোণ ছাড়া বোঝা খুব শক্ত।

প্রায়শই তৃতীয় পক্ষগুলি থাকে যা প্যাকেজগুলি বিকাশ করে যা কোনও ফাংশন সম্পাদন করে বা এমন শূন্যস্থান পূরণ করে যা অফিসিয়াল জেডিকে-র অংশ নয়। বিভিন্ন কারণে যে ফাংশনটি JCP (জাভা সম্প্রদায় প্রক্রিয়া) এর মাধ্যমে জাভা জেডিকে-র অংশ হতে পারে

হাইবারনেট (২০০৩ সালে) এসকিউএল বিমূর্ত করার উপায় এবং বিকাশকারীদের অবিচ্ছিন্ন অবজেক্টের (ওআরএম) দিক থেকে আরও বেশি চিন্তা করার অনুমতি দেয়। আপনি আপনার সত্তা অবজেক্ট সম্পর্কে হাইবারনেটকে অবহিত করেন এবং এটি স্বয়ংক্রিয়ভাবে এগুলি চালিয়ে যাওয়ার কৌশল উত্পন্ন করে। হাইবারনেট এটি করার জন্য একটি বাস্তবায়ন এবং এক্সএমএল কনফিগারেশন বা টীকাগুলির মাধ্যমে বাস্তবায়নটি চালানোর জন্য এপিআই সরবরাহ করে।

এখন মূল বিষয়টি হ'ল আপনার কোডটি একটি নির্দিষ্ট বিক্রেতার (হাইবারনেট) সাথে দৃ tight়ভাবে মিলিত হয়ে যায় যার জন্য অনেক লোক মনে করে যে আরও সাধারণ হতে হবে। সুতরাং জেনেরিক দৃistence়তা এপিআইয়ের প্রয়োজন for

এদিকে, হাইবারনেট এবং অন্যান্য ওআরএম সরঞ্জাম বিক্রেতাদের কাছ থেকে প্রচুর ইনপুট সহ জেসিপি জেএসআর 220 (জাভা স্পেসিফিকেশন রিকোয়েস্ট) বিকাশ করছে যার ফলস্বরূপ জেপিএ 1.0 (2006) এবং জেএসআর 317 যা জেপিএ 2.0 (২০০৯)। এগুলি জেনারিক জাভা পার্সিস্ট্যান্স এপিআই-এর স্পেসিফিকেশন। জেডিকে ইন্টারফেসের একটি সেট হিসাবে এপিআই সরবরাহ করা হয়েছে যাতে আপনার ক্লাসগুলি জাভ্যাক্স.পারস্পেসিটির উপর নির্ভর করতে পারে এবং যে নির্দিষ্ট বিক্রেতার আপনার জিনিসগুলি ধরে রাখার কাজটি করে তা নিয়ে উদ্বিগ্ন না হন। এটি কেবলমাত্র API এবং বাস্তবায়ন নয়। হাইবারনেট এখন JPA 2.0 স্পেসিফিকেশন বাস্তবায়ন করে এমন অনেক বিক্রেতাদের মধ্যে একটি হয়ে যায়। আপনি জেপিএ এর দিকে কোড করতে পারেন এবং যে কোনও উপযুক্ত ওআরএম বিক্রেতাকে আপনার প্রয়োজন অনুসারে বাছাই করতে পারেন।

এমন কিছু ঘটনা রয়েছে যেখানে হাইবারনেট আপনাকে এমন বৈশিষ্ট্য দিতে পারে যা জেপিএতে কোডেড নয়। এই ক্ষেত্রে, আপনি সরাসরি আপনার ক্লাসে একটি হাইবারনেট নির্দিষ্ট টিকাটি সন্নিবেশ করানো চয়ন করতে পারেন যেহেতু জেপিএ সেই কাজটি করার জন্য ইন্টারফেস সরবরাহ করে না।

সূত্র: http://www.reddit.com/r/java/comments/16ovek/ বোঝাবুঝি_ যখন_ আপনি_উইস_জেপা_ভিএস_হবারনেট /


2
ভাল ইতিহাস অংশ। অন্য উত্তরগুলি প্রশ্নের মধ্যে যা রয়েছে তা কেবল পুনরাবৃত্তি করছে।
রবার্ট

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

4
@ অ্যাফ্যাক্স শিওর, এবং আপনি যখন জাভা ফাইলগুলি কোড করেন তখন আপনি জাবার সাথেও শক্তভাবে মিলিত হন, তাই যদি আমি আগামীকাল পাইথনে স্যুইচ করতে চাই তবে কী হবে?
স্মুটজে

100

জেপিএ হ'ল ইন্টারফেস এবং হাইবারনেট বাস্তবায়ন।

Ditionতিহ্যগতভাবে একাধিক জাভা ওআরএম সমাধান রয়েছে:

প্রতিটি বাস্তবায়ন তার নিজস্ব ম্যাপিং সংজ্ঞা বা ক্লায়েন্ট এপিআই সংজ্ঞায়িত করে। জেপিএ বিশেষজ্ঞ গোষ্ঠী এই সমস্ত সরঞ্জামগুলির মধ্যে সর্বোত্তম সংগ্রহ করেছে এবং তাই তারা জাভা পার্সেন্টিপি এপিআই স্ট্যান্ডার্ড তৈরি করেছে।

একটি স্ট্যান্ডার্ড দৃistence়তা এপিআই একটি ক্লায়েন্টের দৃষ্টিকোণ থেকে খুব সুবিধাজনক, অন্যটির সাথে একটি বাস্তবায়ন পরিবর্তন করা তুলনামূলকভাবে সহজ করে তোলে (যদিও বাস্তবে এটি এতটা সহজ নয় কারণ বড় প্রকল্পগুলিতে আপনাকে যে কোনওভাবে নির্দিষ্ট অ-মানক বৈশিষ্ট্য ব্যবহার করতে হবে) ।

স্ট্যান্ডার্ড জেপিএ জাভা ওআরএম প্রতিযোগিতাটিকে একটি নতুন স্তরে ঠেলে দিয়েছে এবং এটি কেবল আরও ভাল বাস্তবায়ন করতে পারে।

আমার বই, উচ্চ-পারফরম্যান্স জাভা পার্সিস্টনে যেমন ব্যাখ্যা করা হয়েছে , হাইবারনেট এমন বৈশিষ্ট্যগুলি সরবরাহ করে যা এখনও জেপিএ দ্বারা সমর্থিত নয় :

এই অতিরিক্ত বৈশিষ্ট্যগুলি হাইবারনেটকে বৃহত্তর এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলির দ্বারা দাবি করা অনেকগুলি দৃistence়তার প্রয়োজনীয়তা মোকাবেলার অনুমতি দেয়।


এটি বেশ ভাল, আমি আগে অন্যান্য
ওআরএম

দুর্দান্ত উত্তর এবং আমি বইটি ভীষণভাবে উপভোগ করছি! এটি প্রকাশের জন্য ধন্যবাদ!
জোনাসজেস্ক্রেইবার 21

আমার উচ্চ-পারফরম্যান্স জাভা দৃistence়তা বইটি উপভোগ করার জন্য ধন্যবাদ ।
ভ্লাদ মিহলসিয়া

এই ~ জেপিএ হ'ল ইন্টারফেস এবং হাইবারনেট বাস্তবায়ন
এডি বি

57

থেকে উইকি

জাভা দৃistence়তা API তৈরি করার প্রেরণা

অনেক এন্টারপ্রাইজ জাভা বিকাশকারী সত্তা শিমের পরিবর্তে ওপেন-সোর্স ফ্রেমওয়ার্ক বা ডেটা অ্যাক্সেস অবজেক্ট দ্বারা সরবরাহিত হালকা ধ্রুবক অবিচ্ছিন্ন অবজেক্টগুলি ব্যবহার করে: সত্তা মটরশুটি এবং এন্টারপ্রাইজ মটরশুটি খুব ভারী ওজনযুক্ত ও জটিল হওয়ার সুনাম অর্জন করেছিল এবং কেউ কেবল জাভা EE অ্যাপ্লিকেশন সার্ভারে এগুলি ব্যবহার করতে পারে। তৃতীয় পক্ষের দৃistence়তা ফ্রেমওয়ার্কের অনেকগুলি বৈশিষ্ট্য জাভা পার্সেন্টিপি এপিআইতে অন্তর্ভুক্ত করা হয়েছিল এবং ২০০ of সালের হিসাবে হাইবারনেট (সংস্করণ ৩.২) এবং ওপেন-সোর্স সংস্করণ টপলিংক এসেনশিয়ালগুলি জাভা পার্সেন্টিপি এপিআই-র বাস্তবায়নে পরিণত হয়েছে।

জিসিপি পৃষ্ঠায় যেমন বলা হয়েছে, গ্রহপ লিঙ্কটি হল জেপিএর জন্য রেফারেন্স বাস্তবায়ন। এ চেহারা আছে এই উত্তরটি এই বিষয়ে আরও একটু জন্য।

জেপিএ নিজেই এমন বৈশিষ্ট্য রয়েছে যা মানক ওআরএম কাঠামোর জন্য তৈরি করবে। যেহেতু জেপিএ জাভা ইই অনুচ্ছেদের একটি অংশ, আপনি কোনও প্রকল্পে একা জেপিএ ব্যবহার করতে পারেন এবং এটি কোনও জাভা ইই সুসংগত সার্ভারের সাথে কাজ করা উচিত । হ্যাঁ, এই সার্ভারগুলির জেপিএ অনুমানের জন্য বাস্তবায়ন থাকবে।

হাইবারনেট হ'ল সর্বাধিক জনপ্রিয় ওআরএম কাঠামো, যখন একবার জেপিএ হাইবারনেট জেপিএর নির্দিষ্টকরণের সাথে সম্মত হয় । নির্দিষ্টকরণের মৌলিক সেট ছাড়াও এটি হাইবারনেট অনুসরণ করা উচিত অতিরিক্ত প্রচুর স্টাফ সরবরাহ করে।


3
এটি বলেছিল যে আপনি কোনও প্রকল্পে জেপিএ একা ব্যবহার করতে পারবেন। আপনি কি হাইবারনেট, টপলিংক বা অন্য কোনও জেপিএ প্রয়োগ না করে বোঝাতে চান?
আব্বাস

2
@ আব্বাস হ্যাঁ জাভা ই ই চশমা কেবল জেপিএ ব্যবহার করে। আপনি হাইবারনেট যুক্ত করলে এটি কিছু অতিরিক্ত বৈশিষ্ট্য দেয়।
ManuPK

1
শুনেছি জেপিএ কেবল একটি ইন্টারফেস / স্পেসিফিকেশন। আমরা যদি কোন প্রকল্পে একা জেপিএ ব্যবহার করি তবে এর বাস্তবায়ন কোথা থেকে আসে?
আব্বাস

@ আব্বাস মন্তব্যটির জন্য ধন্যবাদ। আমি উত্তরে আরও বিশদ যুক্ত করেছি। আশাকরি এটা সাহায্য করবে.
ManuPK

1
@ ফোরহাদ সবসময় একটি বাস্তবায়ন হওয়া দরকার, এটি কোনও সার্ভারের আর্কিটেকচারে সমাহিত করা হোক বা না আসুক, কিছু জেপিএ লাইব্রেরি ডাউনলোড করার উপায় নেই এবং এটি আপনার জন্য অধ্যবসায় সম্পাদন করে।
কেভিন বোয়ারসক্স

15

জেপিএ একটি স্পেসিফিকেশন যা কংক্রিট বাস্তবায়ন প্রয়োজন। ডিফল্ট বাস্তবায়ন ওরাকল প্রদান "Eclipselink" এখন হয়। (টপলিংককে অ্যাক্রেপসিলিংকের সাথে একীভূত করতে অ্যাক্রিল ফাউন্ডেশনে ওরাকল দান করেছেন)

(তথ্যসূত্র: http://www.oracle.com/technetwork/middleware/toplink/index-085257.html http://www.eclipse.org/org/press-release/20080317_Elipselink.php )

ইক্লিপসেলিংক ব্যবহার করে, কেউ নিশ্চিত হতে পারে যে কোনও প্রয়োজনে কোড প্রয়োগের ক্ষেত্রে পোর্টেবল। হাইবারনেট একটি সম্পূর্ণ জেপিএ বাস্তবায়ন + আরও (জেপিএ প্লাসের বাছাই) ort হাইবারনেট কিছু অতিরিক্ত হাইবারনেট নির্দিষ্ট কার্যকারিতা সহ জেপিএর সুপার সেট। সুতরাং হাইবারনেটে বিকাশযুক্ত অ্যাপ্লিকেশন অন্য বাস্তবায়নে স্যুইচ করার সময় উপযুক্ত হতে পারে না। এখনও হাইবারনেট জেপিএ বাস্তবায়ন এবং ব্যাপকভাবে ব্যবহৃত হিসাবে বেশিরভাগ বিকাশকারীদের পছন্দ।

আর একটি জেপিএ বাস্তবায়ন ওপেনজেপিএ (ওপেনজেপা.এপাচি.অর্গ) যা কোডো বাস্তবায়নের একটি এক্সটেনশন।


15

জেপিএ: ঠিক একটি ইন্টারফেসের মতো এবং জেপিএতে থাকা কার্যগুলি ব্যবহারের জন্য এটির কোনও দৃ concrete় বাস্তবায়ন নেই।

হাইবারনেট: হ'ল একটি জেপিএ সরবরাহকারী যা জেপিএতে ফাংশনগুলি বাস্তবায়ন করে এবং কিছু অতিরিক্ত ফাংশন থাকতে পারে যা জেপিএতে নাও থাকতে পারে।

টিপ: আপনি ব্যবহার করতে পারেন

     *combo 1* : JPA + JPA Provider(Hibernate) 
     *combo 2* : only Hiberante which does not need any interface 

কম্বো 1 : ব্যবহার করা হয় যখন আপনি মনে করেন যে হাইবারনেট আরও ভাল পারফরম্যান্স দিচ্ছে না এবং আপনি যখন আবার আপনার জেপিএ লিখবেন না তখন আপনি জেপিএ সরবরাহকারীকে পরিবর্তন করতে চান। আপনি অন্য জেপিএ সরবরাহকারী লিখতে পারেন ... এবং আপনি যতবার পারেন পরিবর্তন করতে পারবেন।

কম্বো 2 : আপনি যখন কোনও মূল্যে আপনার জেপিএ সরবরাহকারী পরিবর্তন করবেন না তখন খুব কম ব্যবহার করা হয়।

পরিদর্শন http://blog-tothought.rhcloud.com//post/2 , যেখানে আপনার সম্পূর্ণ বিভ্রান্তির পরিষ্কার পাবেন।


11

জেপিএ হ'ল ইন্টারফেস, হাইবারনেট হল সেই ইন্টারফেসের একটি বাস্তবায়ন।


2
এবং সেই হাইবারনেটের উপরে আরও কয়েকটি বৈশিষ্ট্য / পদ্ধতি যুক্ত করা হয়েছে।
rai.skumar

10

জেপিএ হল ওআরএম-এপিআইগুলিকে মানক করার একটি স্পেসিফিকেশন। হাইবারনেট একটি জেপিএ বাস্তবায়নের একজন বিক্রেতা। সুতরাং আপনি যদি হাইবারনেট সহ জেপিএ ব্যবহার করেন তবে আপনি স্ট্যান্ডার্ড জেপিএ এপিআই ব্যবহার করতে পারেন, হাইবারনেট হুডের অধীনে থাকবে আরও কিছু অ-মানক ফাংশন সরবরাহ করে। দেখুন http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html_single/ এবং http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/


5

জেপিএ হ'ল একটি স্পেসিফিকেশন market বাজারে অনেক বিক্রেতারা রয়েছে যা জেপিএ প্রয়োগ করে। বিভিন্ন ধরণের বিক্রেতারা বিভিন্ন উপায়ে জেপিএ প্রয়োগ করে। তাই বিভিন্ন ধরণের বিক্রেতারা বিভিন্ন কার্যকারিতা সরবরাহ করে তাই আপনার প্রয়োজনীয়তার ভিত্তিতে উপযুক্ত বিক্রেতাকে বেছে নিন।

আপনি যদি হাইপারনেট বা জেপিএর পরিবর্তে অন্য কোনও বিক্রেতাদের ব্যবহার করছেন তবে আপনি সহজেই একিপ্লিটলিংক বা ওপেনজেপিএতে হাইবারনেট যেতে পারবেন না। তবে আপনি যদি জেপিএ ব্যবহার করেন তবে আপনাকে কেবল অধ্যবসায় এক্সএমএল ফাইল সরবরাহ করতে হবে। সুতরাং মাইগ্রেশন সহজেই সম্ভব JPA।


4

জেপিএ একটি এপিআই, যা হাইবারনেট প্রয়োগ করে। হাইবারনেট জেপিএর পূর্বাভাস দেয়। জেপিএর আগে, আপনি নিজের ওআরএম করতে নেটিভ হাইবারনেট কোডটি লিখেন। জেপিএ হ'ল ইন্টারফেস, সুতরাং এখন আপনি জেপিএ কোড লেখেন এবং আপনার একটি প্রয়োগ খুঁজে পাওয়া দরকার। হাইবারনেট একটি বাস্তবায়ন হতে পারে।

সুতরাং আপনার পছন্দগুলি হ'ল হাইবারনেট, টপলিংক, ইত্যাদি ...

জেপিএর সুবিধা হ'ল এটি আপনার প্রয়োজনের প্রয়োজনে আপনার বাস্তবায়নকে সরিয়ে নিতে দেয়। অসুবিধাটি হ'ল নেটিভ হাইবারনেট / টপলিংক / ইত্যাদি ... এপিআই কার্যকারিতা দিতে পারে যা জেপিএ স্পেসিফিকেশন সমর্থন করে না।


4

যদিও জেপিএ হ'ল স্পেসিফিকেশন, হাইবারনেট হ'ল বাস্তবায়ন প্রদানকারী যা নির্দিষ্টকরণের বিধিবিধান অনুসরণ করে।


3

জাভা - এর স্বাধীনতা কেবল অপারেটিং সিস্টেম থেকে নয়, তবে বিক্রেতার কাছ থেকেও।

অতএব, আপনার নিজের অ্যাপ্লিকেশনটি বিভিন্ন অ্যাপ্লিকেশন সার্ভারে স্থাপন করতে সক্ষম হওয়া উচিত । JPA যেকোন জাভা EE- অনুসারী অ্যাপ্লিকেশন সার্ভারে প্রয়োগ করা হয় এবং এটি অ্যাপ্লিকেশন সার্ভারগুলিকে অদলবদল করতে দেয়, তবে তারপরে বাস্তবায়নও পরিবর্তন হয়। একটি হাইবারনেট অ্যাপ্লিকেশনটি অন্য কোনও অ্যাপ্লিকেশন সার্ভারে স্থাপন করা আরও সহজ হতে পারে


3

জেপিএ হ'ল একটি স্পেসিফিকেশন যা আপনি আপনার ডেটা লেয়ারে ডিবি অপারেটেশন, বা ম্যাপিং এবং অন্যান্য প্রয়োজনীয় কার্য সম্পাদন করতে প্রয়োগ করেন।

যেহেতু এটি কেবল একটি স্পেসিফিকেশন , এটি কার্যকর করার জন্য আপনার একটি সরঞ্জাম প্রয়োজন। এই সরঞ্জামটি হয় হাইবারনেট, টপলিংক, আইবাটিস, স্প্রিং-ডেটা ইত্যাদি হতে পারে either

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

* ( যদি মনে থাকে, আপনি import javax.persistence.*;হাইবারনেটে ওআর ম্যাপিংয়ের জন্য টীকাগুলি ব্যবহার করেন (যেমন @ আইডি, @ কলাম, @ জেনারেটভ্যালু ইত্যাদি), আপনি যেখানে হাইবারনেটের অধীনে জেপিএ ব্যবহার করছেন, আপনি জেপিএর @ কিউরি এবং অন্যান্য বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন ভাল )


2

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

আপনি JPA কে নিয়মের একটি সেট হিসাবে ভাবতে পারেন যা হাইবারনেট দ্বারা প্রয়োগ করা হয়।


2

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


1

জেপিএ একটি স্পেসিফিকেশন যা কংক্রিট বাস্তবায়ন প্রয়োজন। ওরাকল দ্বারা সরবরাহিত ডিফল্ট বাস্তবায়ন হ'ল এখন "Eclipselink"। টপলিংককে অ্যাক্রিপস ফাউন্ডেশনকে অ্যাক্লিপসেলিংকের সাথে একীভূত করতে ওরাকল দ্বারা অনুদান দেওয়া হয়।

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

আর একটি জেপিএ বাস্তবায়ন ওপেনজেপিএ, যা কোডো বাস্তবায়নের একটি এক্সটেনশন।

জেপিএ বনাম হাইবারনেট


1

আমি খুব সহজ কথায় ব্যাখ্যা করার চেষ্টা করি।

মনে করুন আপনার একটি গাড়ি প্রয়োজন কারণ আমরা সকলেই জানি তাদের বেশ কয়েকটি ক শ্রেণি প্রস্তুতকারক যেমন মার্সেডেস, বিএমডাব্লু, অডিআই ইত্যাদি are

এখন উপরোক্ত বিবৃতিতে সিএআর (একটি স্পেসিফিকেশন) কারণ প্রতিটি গাড়িতে 4 চাকার মতো জিনিসগুলির সাধারণ বৈশিষ্ট্য রয়েছে এবং রাস্তায় চালিত করা যায় গাড়ি ... তাই এটি জেপিএর মতো। এবং মার্সেডিজ, বিএমডাব্লু, অডিআই ইত্যাদি কেবল সাধারণ গাড়ী বৈশিষ্ট্য ব্যবহার করছে এবং তাদের গ্রাহক বেস অনুযায়ী কার্যকারিতা যুক্ত করছে যাতে তারা হাইবারনেট, আইবাটিস ইত্যাদির মতো গাড়ির স্পেসিফিকেশন বাস্তবায়ন করে are

সুতরাং এই সাধারণ বৈশিষ্ট্যগুলি দ্বারা জেপিএ যায় এবং হাইবারনেট কেবল তাদের জবস প্রয়োজন অনুসারে একটি বাস্তবায়ন।

আরও 1 টি জিনিস

জেপিএ কিছু প্রাথমিক বৈশিষ্ট্য অন্তর্ভুক্ত করে তাই ভবিষ্যতে যদি আপনি হাইবারনেটকে অন্য যে কোনও বাস্তবায়নে পরিবর্তন করতে চান আপনি খুব বেশি মাথা ব্যথা ছাড়াই সহজেই স্যুইচ করতে পারেন এবং সেই প্রাথমিক বৈশিষ্ট্যগুলির জন্য জেপিএ টিকা রয়েছে যা কোনও বাস্তবায়ন প্রযুক্তি, জেপিকিউএল কোয়েরিগুলির জন্য কাজ করতে পারে।

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

ধন্যবাদ


পরামর্শের জন্য ধন্যবাদ
রাজীব বাঘেল

0

জেপিএ হ'ল একটি স্পেসিফিকেশন যখন হাইবারনেট জেপিএ সরবরাহকারীদের মধ্যে অন্যতম অর্থাৎ হাইবারনেট জেপিএ চুক্তিতে উল্লিখিত বিভিন্ন বিষয় বাস্তবায়ন করছে।


0

জেপিএ বা জাভা পার্সিস্টান এপিআই ওআরএম বাস্তবায়নের জন্য একটি স্ট্যান্ডার্ড স্পেসিফিকেশন যেখানে হাইবারনেট হ'ল আসল ওআরএম বাস্তবায়ন বা কাঠামো।


-1

জেপিএ হ'ল জাভা পার্সিস্টান এপিআই। যা কেবলমাত্র এপিআই-এর জন্য নির্দিষ্টকরণ নির্দিষ্ট করে। এর মানে হল যে এপিআই তৈরির জন্য নিয়ম এবং নির্দেশিকাগুলির সেট। যদি অন্য একটি প্রসঙ্গে বলে, এটি এমন মানদণ্ডের সেট যা এই এপিআইগুলি তৈরির জন্য মোড়ক সরবরাহ করে, ডাটাবেস থেকে সত্তা অবজেক্ট অ্যাক্সেসের জন্য ব্যবহার করা যেতে পারে। জেপিএ ওরাকল দ্বারা সরবরাহ করা হয়েছে hen যখন আমরা ডাটাবেস অ্যাক্সেস করতে যাচ্ছি, আমাদের অবশ্যই এটির বাস্তবায়ন দরকার। মানে জেপিএ কেবলমাত্র API গুলি বাস্তবায়নের জন্য নির্দেশিকা নির্দিষ্ট করে। হাইবারনেট হ'ল একটি জেপিএ সরবরাহকারী / বিক্রেতা যিনি সেই API গুলি বাস্তবায়নের জন্য দায়ী। হাইবারনেট টপলিংকের মতো এবং ওপেন জেপিএ হ'ল জেপিএ এপিআই সরবরাহকারীদের উদাহরণ। তাই আমরা হাইবারনেটের মাধ্যমে জেপিএ নির্দিষ্ট স্ট্যান্ডার্ড এপিআই ব্যবহার করি।


-2

রূপকভাবে জেপিএ বলতে কেবল ইন্টারফেস, হাইবারনেট / টপলিংক - শ্রেণি (অর্থাত্ ইন্টারফেস বাস্তবায়ন)।

ইন্টারফেস ব্যবহার করার জন্য আপনার অবশ্যই ইন্টারফেস বাস্তবায়ন করতে হবে। তবে আপনি ইন্টারফেসের মাধ্যমে ক্লাস ব্যবহার করতে পারেন, অর্থাৎ জেপিএ এপিআইয়ের মাধ্যমে হাইবারনেট ব্যবহার করুন বা আপনি সরাসরি বাস্তবায়ন ব্যবহার করতে পারেন, অর্থাৎ খাঁটি জেপিএ এপিআইয়ের মাধ্যমে নয়, সরাসরি হাইবারনেট ব্যবহার করতে পারেন।

জেপিএ সম্পর্কে ভাল বই হ'ল ভ্লাদ মিহালসিয়া "হাই পারফরম্যান্স জাভা পার্সিস্টিশন"।

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