আমি @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
আমাদের একটি উপায় দেবে