নিম্নলিখিত ডোমেন মডেলটি দেওয়া, আমি Answerতাদের Valueও তাদের নিজ নিজ সাব-শিশু সহ সমস্তগুলি লোড করতে এবং এটিতে AnswerDTOJSON এ রূপান্তর করতে চাই। আমার একটি কার্যকরী সমাধান রয়েছে তবে এটি এন + 1 সমস্যায় ভুগছে যা আমি একটি অ্যাড-হক ব্যবহার করে পরিত্রাণ পেতে চাই @EntityGraph। সমস্ত সমিতি কনফিগার করা আছে LAZY।
@Query("SELECT a FROM Answer a")
@EntityGraph(attributePaths = {"value"})
public List<Answer> findAll();
একটি বিজ্ঞাপন-হক ব্যবহার @EntityGraphউপর Repositoryআমি করতে পদ্ধতি নিশ্চিত করুন যে মূল্যবোধের ওপর n + 1 প্রতিরোধ প্রাক নিয়ে আসা হয় Answer->Valueসমিতি। যদিও আমার ফল জরিমানা সেখানে অলস লোড কারণ অন্য n + 1 সমস্যা হচ্ছে, selectedসমিতি MCValueগুলি।
এটি ব্যবহার করে
@EntityGraph(attributePaths = {"value.selected"})
ব্যর্থ হয়, কারণ selectedক্ষেত্রটি অবশ্যই কিছু Valueসংস্থার অংশ মাত্র :
Unable to locate Attribute with the the given name [selected] on this ManagedType [x.model.Value];
selectedমানটি হ'ল আমি কীভাবে জেপিএকে সমিতিটি আনার চেষ্টা করতে পারি MCValue? আমি কিছু প্রয়োজন optionalAttributePaths।

selectedউত্তর আছে এমন উত্তরগুলির জন্য 2 তম উত্তরMCValue। আমি অপছন্দ করি যে এটির জন্য অতিরিক্ত লুপের প্রয়োজন হবে এবং ডেটা সেটগুলির মধ্যে ম্যাপিংটি পরিচালনা করতে হবে। এর জন্য হাইবারনেট ক্যাশেটি কাজে লাগানো আপনার ধারণাটি আমি পছন্দ করি। ফলাফলটি রক্ষার জন্য ক্যাশে নির্ভর করা কতটা নিরাপদ (ধারাবাহিকতার দিক দিয়ে) আপনি বিশদ বর্ণনা করতে পারেন? প্রশ্নগুলি লেনদেনের সময় করা হলে এটি কি কাজ করে? আমি স্পট এবং অল্প অলস প্রারম্ভিক ত্রুটিগুলি থেকে কঠিন hard