উভয়ই একের সাথে একাধিক সম্পর্কের ক্ষেত্রে কাজ করে @OneToMany
এবং @ElementCollection
টীকা ব্যবহারের মধ্যে পার্থক্য কী ?
উভয়ই একের সাথে একাধিক সম্পর্কের ক্ষেত্রে কাজ করে @OneToMany
এবং @ElementCollection
টীকা ব্যবহারের মধ্যে পার্থক্য কী ?
উত্তর:
আমি বিশ্বাস করি @ElementCollection
মূলত অ-সত্ত্বা (এম্বেডযোগ্য বা বেসিক) ম্যাপিংয়ের জন্য যখন @OneToMany
সত্ত্বাগুলির মানচিত্র ব্যবহৃত হয়। কোনটি ব্যবহার করতে হবে তা আপনি কী অর্জন করতে চান তার উপর নির্ভর করে।
ElementCollection
হ'ল স্ট্যান্ডার্ড জেপিএ টিকা, যা এখন মালিকানাধীন হাইবারনেট টীকাটির চেয়ে বেশি পছন্দ করা হয় CollectionOfElements
।
এর অর্থ হল যে সংগ্রহটি সত্তার সংকলন নয়, সাধারণ ধরণের (স্ট্রিংস, ইত্যাদি) বা এমবেডেবল উপাদানগুলির সংকলন (এর সাথে ক্লাস টিকা দেওয়া @Embeddable
)।
এর অর্থ হ'ল উপাদানগুলি হ'ল সংস্থাগুলির সম্পূর্ণ মালিকানাধীন: সত্তাটি সংশোধন করা হয়, সত্তা মোছার সময় মুছে ফেলা হয় ইত্যাদি they তাদের নিজস্ব জীবনচক্র থাকতে পারে না।
@ElementCollection
আপনি যখন সরল বা এম্বেড থাকা প্রকারের সাথে এক থেকে একাধিক সম্পর্ক বাস্তবায়ন করতে চান তখন আপনাকে কোড সরল করতে দেয়। উদাহরণস্বরূপ, জেপিএ ১.০-এ আপনি যখন একটি তালিকার সাথে একাধিক সম্পর্ক স্থাপন করতে চেয়েছিলেন, তখন আপনাকে একটি প্রাথমিক String
সত্ত্বা POJO ( StringWrapper
) তৈরি করতে হবে যা কেবলমাত্র প্রাথমিক কী এবং String
প্রশ্নে রয়েছে:
@OneToMany
private Collection<StringWrapper> strings;
//...
public class StringWrapper {
@Id
private int id;
private String string;
}
জেপিএ ২.০ সহ আপনি কেবল লিখতে পারেন:
@ElementCollection
private Collection<String> strings;
সরল, তাই না? নোট করুন যে আপনি এখনও @CollectionTable
টীকা এবং কলামের নামগুলি টীকাটি ব্যবহার করে নিয়ন্ত্রণ করতে পারেন ।
বেসিক বা এম্বেড : @ElementCollection
সংস্থাগুলো : @OneToMany বা @ManyToMany
@ElementCollection:
@ ওনটোম্যানি / @ ম্যানিটোম্যানি:
এলিমেন্টকোলেকশন তাদের সংগ্রহের জন্য ম্যাপিংগুলি বা টেবিলটিকে ওভাররাইড করতে পারে, যাতে আপনার একাধিক সত্ত্বা একই এম্বেডেবল ক্লাসের রেফারেন্স রাখতে পারে তবে প্রতিটি তাদের পৃথক পৃথক টেবিলের উপর নির্ভরশীল বস্তু সংরক্ষণ করতে পারে।