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
এমন প্রধান সত্তার পাশাপাশি আনয়ন কৌশলটি ব্যবহার করে সত্তা সমিতিগুলি সূচনা করতে পারেন ।