জেপিএ অধ্যবসায়ের মধ্যে @Basic(optional = false)এবং @Column(nullable = false)মধ্যে পার্থক্য কী ?
জেপিএ অধ্যবসায়ের মধ্যে @Basic(optional = false)এবং @Column(nullable = false)মধ্যে পার্থক্য কী ?
উত্তর:
গর্ডন ইওর্ক (এক্সিলিপলিংক আর্কিটেকচার কমিটির সদস্য, টপলিংক কোর টেকনিক্যাল লিড, জেপিএ ২.০ বিশেষজ্ঞ গ্রুপের সদস্য) এই বিষয়ে একটি ভাল উত্তর লিখেছিলেন যাতে তাকে প্যারাফ্রেস না করে আমি তার উত্তরটি উদ্ধৃত করব :
এর মধ্যে পার্থক্য
optionalএবংnullableসেই সুযোগটি যেখানে তারা মূল্যায়ন করা হয়। 'optional' এর সংজ্ঞা সম্পত্তি এবং ক্ষেত্রের মান সম্পর্কে আলোচনা করে এবং পরামর্শ দেয় যে রানটাইমের মধ্যে এই বৈশিষ্ট্যটি মূল্যায়ন করা উচিত। 'nullable' কেবল ডাটাবেস কলামের ক্ষেত্রেই উল্লেখ করা যায়।যদি কোনও বাস্তবায়ন প্রয়োগ করতে পছন্দ করে
optionalতবে সেই বৈশিষ্ট্যগুলি দৃ memory়তা সরবরাহকারী দ্বারা মেমোরিতে মূল্যায়ন করা উচিত এবং এসকিউএল ডেটাবেজে প্রেরণের আগে উত্থাপিত একটি ব্যতিক্রম অন্যথায় 'updatable=false' 'optional' লঙ্ঘনের ক্ষেত্রে কখনই রিপোর্ট করা হবে না।
@Basic(optional = false) @Column(nullable = false)@ বেসিক টীকাটি সম্পত্তিটিকে জাভা অবজেক্ট স্তরে optionচ্ছিক হিসাবে চিহ্নিত করে না। দ্বিতীয় সেটিংটি, কলাম ম্যাপিংয়ের ক্ষেত্রে nullable = মিথ্যা, কেবল একটি নট ডাটাবেস সীমাবদ্ধতার জন্যই দায়বদ্ধ। হাইবারনেট জেপিএ বাস্তবায়ন উভয় বিকল্পকে যে কোনও ক্ষেত্রে একইভাবে আচরণ করে, সুতরাং আপনি এই উদ্দেশ্যে কেবলমাত্র একটি টীকা ব্যবহার করতে পারেন।
The @Basic annotation marks the property as not optional on the Java object level.অর্থ কী? সুতরাং, কেবল @Basicবলার মতোই NOT NULLকি ভেরিয়েবলের জন্য ডাটাবেস কলাম তৈরি করা যায় ?
সুতরাং আমি জেপিএ ২.১ (একলিপস লিঙ্ক) ব্যবহার করে @ বেসিক (otচ্ছিক = মিথ্যা) টীকাগুলি চেষ্টা করেছিলাম এবং এটি প্রমাণিত হয় যে টীকাটি প্রকৃত ব্যবহারের ক্ষেত্রে উপেক্ষা করা হয় (কমপক্ষে কোনও স্ট্রিংয়ের ক্ষেত্রে)। (যেমন, অ্যান্টিম্যানএজআরপিস্টিস্ট কল)।
সুতরাং আমি স্পেসিফিকেশন গিয়েছিলাম এবং এটি সম্পর্কে পড়তে। এখানে অনুমানের কথাটি বলতে হবে:
http://download.oracle.com/otndocs/jcp/persistance-2.0-fr-oth-JSpec/
বেসিক (alচ্ছিক): ক্ষেত্র বা সম্পত্তির মান শূন্য হতে পারে কিনা। এটি একটি ইঙ্গিত এবং আদিম ধরণের জন্য উপেক্ষা করা হয়; এটি স্কিমা জেনারেশনে ব্যবহৃত হতে পারে।
সুতরাং আমি মনে করি এই বাক্যটি বেসিক (alচ্ছিক) এর বাস্তব ব্যবহারের ক্ষেত্রটি ব্যাখ্যা করে যা এটি স্কিমা জেনারেশনে ব্যবহৃত হয়। (এটি হ'ল: আপনি যখন জাভা সত্তা ক্লাসগুলি থেকে টেবিল তৈরি করুন এসকিউএল তৈরি করবেন Hi উদাহরণস্বরূপ হাইবারনেট এটি করতে পারে))
optional = falseশুধুমাত্র রানটাইমে এই সীমাবদ্ধতা যাচাই করার জন্য। nullable = falseডাটাবেস সীমাবদ্ধতা তৈরি করে। অ্যাপ্লিকেশনগুলির জন্য, সেটটিও optional = falseবোধগম্য হয়, কারণ এটি ডাটাবেসে যাওয়ার চেয়ে দ্রুত মূল্যায়ন করা হয় এবং সেখানে সেই সীমাবদ্ধতা পরীক্ষা করে দেখুন ..