JOIN
JOINকোনও সত্তা সমিতিগুলির বিরুদ্ধে ব্যবহার করার সময় , জেপিএ উত্পন্ন এসকিউএল বিবৃতিতে পিতামত্তা সত্তা এবং শিশু সত্তা সারণীর মধ্যে একটি জয়ন তৈরি করবে।
সুতরাং, এই জেপিকিউএল কোয়েরি কার্যকর করার সময় আপনার উদাহরণটি গ্রহণ করে:
FROM Employee emp
JOIN emp.department dep
হাইবারনেট নিম্নলিখিত এসকিউএল বিবৃতি উত্পন্ন করতে যাচ্ছে:
SELECT emp.*
FROM employee emp
JOIN department dep ON emp.department_id = dep.id
নোট করুন যে এসকিউএল SELECTক্লজে কেবল employeeটেবিল কলাম রয়েছে, এবং এটি নেই department। departmentটেবিলের কলামগুলি আনতে আমাদের JOIN FETCHপরিবর্তে ব্যবহার করা দরকার JOIN।
ফেচ যোগ দিন
সুতরাং, এর সাথে তুলনা করলে JOIN, JOIN FETCHঅনুমতি দেওয়া আপনাকে SELECTউত্পন্ন এসকিউএল স্টেটমেন্টের ধারাটিতে যোগদানের টেবিল কলামগুলি প্রজেক্ট করতে দেয় ।
সুতরাং, আপনার উদাহরণে, এই জেপিকিউএল কোয়েরি কার্যকর করার সময়:
FROM Employee emp
JOIN FETCH emp.department dep
হাইবারনেট নিম্নলিখিত এসকিউএল বিবৃতি উত্পন্ন করতে যাচ্ছে:
SELECT emp.*, dept.*
FROM employee emp
JOIN department dep ON emp.department_id = dep.id
দ্রষ্টব্য, এবার, departmentসারণী কলামগুলি পাশাপাশি নির্বাচন করা হয়েছে, কেবল FROMজেপিকিউএল ধারাটিতে তালিকাভুক্ত সত্তার সাথে সম্পর্কিত নয় ।
এছাড়াও, হাইবারনেট ব্যবহার JOIN FETCHকরার LazyInitializationExceptionসময় সম্বোধনের এক দুর্দান্ত উপায় হ'ল আপনি আনছেন FetchType.LAZYএমন প্রধান সত্তার পাশাপাশি আনয়ন কৌশলটি ব্যবহার করে সত্তা সমিতিগুলি সূচনা করতে পারেন ।