আমি @EmbeddedIdসম্ভবত এটি আরও ভারবোজ হিসাবে বিবেচনা করছি কারণ আপনার সাথে @IdClassকোনও ফিল্ড অ্যাক্সেস অপারেটর ব্যবহার করে পুরো প্রাথমিক কী বস্তুটি অ্যাক্সেস করতে পারবেন না। এটি ব্যবহার করে @EmbeddedIdআপনি এটি করতে পারেন:
@Embeddable class EmployeeId { name, dataOfBirth }
@Entity class Employee {
@EmbeddedId EmployeeId employeeId;
...
}
এটি ক্ষেত্রগুলির একটি পরিষ্কার ধারণা দেয় যা যৌগিক কী তৈরি করে কারণ তারা সকলেই একটি ক্লাসে সংযুক্ত যা ক্ষেত্রের অ্যাক্সেস অপারেটরকে প্রবাহিত করে।
এইচকিউএল লেখার ক্ষেত্রে এর সাথে @IdClassআর একটি পার্থক্য রয়েছে @EmbeddedId:
সঙ্গে @IdClassআপনি লিখুন:
কর্মচারী থেকে e.name নির্বাচন করুন
এবং আপনার সাথে @EmbeddedIdলিখতে হবে:
কর্মচারী e থেকে e.employeeId.name নির্বাচন করুন
একই ক্যোয়ারির জন্য আপনাকে আরও পাঠ্য লিখতে হবে। কেউ কেউ যুক্তি দিতে পারেন যে এটি প্রচারিত ভাষার মতো আরও প্রাকৃতিক ভাষা থেকে পৃথক IdClass। তবে প্রদত্ত ক্ষেত্রটি সংমিশ্রিত কীটির অংশ বলে জিজ্ঞাসা করা থেকে বেশিরভাগ সময়ই অমূল্য সহায়তা হয়।
@IdClassযদিও আমি@EmbeddedIdবেশিরভাগ পরিস্থিতিতে পছন্দ করি তবুও আমি একটি অনন্য ব্যবহারের কেস যুক্ত করতে চাই (আন্তোনিও গনক্যাল্ভেসের একটি অধিবেশন থেকে এটি জানতে পেরেছি। তিনি কী পরামর্শ দিয়েছিলেন যে আমরা@IdClassযদি সংমিশ্রণের ক্ষেত্রে ব্যবহার করতে পারি) কী ক্লাসটি অ্যাক্সেসযোগ্য নয় বা অন্য মডিউল বা লিগ্যাসি কোড থেকে আসে যেখানে আমরা কোনও টিকা যোগ করতে পারি না those এই পরিস্থিতিতে@IdClassআমাদের একটি উপায় দেবে