এইচকিউএল ত্রুটি: যোগদানের জন্য পথ প্রত্যাশিত


100

আমি এই কোয়েরির বিভিন্নতার চেষ্টা করে যাচ্ছি এবং এটি ঘটতে পারে বলে মনে হচ্ছে না। আমি এই পোস্টটি রেফারেন্সও করেছি: যোগদানের জন্য পথ প্রত্যাশিত! নিবারনেট ত্রুটি এবং আমার ক্যোয়ারিতে একই যুক্তি প্রয়োগ করার মতো মনে হচ্ছে না। আমার Userবস্তুর একটি UserGroupসংগ্রহ আছে has

আমি বুঝতে পেরেছি যে ক্যোয়ারিকে অবজেক্টের মধ্যে সত্তাগুলি উল্লেখ করা দরকার তবে আমি যা দেখছি তা থেকে ...

@NamedQuery(
  name = "User.findByGroupId",
  query =
    "SELECT u FROM UserGroup ug " +
    "INNER JOIN User u WHERE ug.group_id = :groupId ORDER BY u.lastname"
)

উত্তর:


132
select u from UserGroup ug inner join ug.user u 
where ug.group_id = :groupId 
order by u.lastname

নামযুক্ত ক্যোয়ারী হিসাবে:

@NamedQuery(
  name = "User.findByGroupId",
  query =
    "SELECT u FROM UserGroup ug " +
    "INNER JOIN ug.user u WHERE ug.group_id = :groupId ORDER BY u.lastname"
)

এইচকিউএল বিবৃতিতে একটি সত্ত্বা থেকে অন্য সত্তা পর্যন্ত পাথগুলি ব্যবহার করুন। এইচকিউএল এর হাইবারনেট ডকুমেন্টেশন দেখুন এবং বিশদ জন্য যোগদান


34
"পথ" কী? আমি এইচকিউএল ডকুমেন্টেশন সন্ধান করেছি কিন্তু একটি সংজ্ঞা পাইনি।
gwg

7
এর অর্থ হল আপনাকে সত্তাগুলি সংযুক্ত করতে হবে: উপরে তার উদাহরণে এখানে লক্ষ করুন যে তিনি কীভাবে ug.user রাখেন u Ug ছাড়াই এর আগে আপনি ত্রুটিটি পেতেন। এছাড়াও, 'ug.user u' এর 'ব্যবহারকারীর' ক্লাস ইউজারগ্রুপের ক্ষেত্রের নাম হওয়া উচিত!
লরেন্স

6
এই এইচকিউএল সিনট্যাক্স বিরক্তিকর। আমাকে অনেকগুলি উদাহরণ খুঁজে পেতে হয়েছিল এবং আপনার খুঁজে পেয়েছি।
বাঙ্গ রিকিমারু

তারপরে সত্তার সাথে সুস্পষ্ট ম্যাপিং (যোগদানের জন্য ব্যবহৃত ক্ষেত্র) ছাড়াই আমি "ম্যানুয়ালি" সত্তায় যোগদান করতে পারি না?
মিঃ অ্যান্ডারসন

68

আপনাকে সেই সত্তার নামকরণ করতে হবে যা ব্যবহারকারীর সাথে যোগাযোগ রাখে। উদাহরণ স্বরূপ,

... INNER JOIN ug.user u ...

এটি সেই "পথ" ত্রুটি বার্তাটি অভিযোগ করছে - ইউজারগ্রুপ থেকে ব্যবহারকারী সত্তায় পাথ।

হাইবারনেট ঘোষিত জোইনগুলির উপর নির্ভর করে, যার জন্য ম্যাপিং মেটাডেটাতে যুক্ত হওয়ার শর্ত ঘোষিত হয়। এ কারণেই পথ ছাড়াই নেটিভ এসকিউএল কোয়েরিটি তৈরি করা অসম্ভব।


13
অবশেষে কেউ সমস্যার মূল উত্তর দিচ্ছে ... (বিদ্যমান উরফ দিয়ে বিদেশী টেবিলের উপসর্গের প্রয়োজনীয়তা) আমার সমস্যার সমাধান করেছে, অনেক ধন্যবাদ!
সাদ বেনবউজিদ

6
কি যদি: আপনি সত্তায় কোনও সমিতি তৈরি করেন নি এবং স্রেফ 'লং ইউজারআইডি'র মতো কিছু সঞ্চয় করেছেন;
স্পেকটাকুলটিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.