جاوا و تکنولوژی های آن

java programming language

در این وبلاگ به بررسی نکات موجود در جاوا و تکنولوژی های آن می پردازیم

طبقه بندی موضوعی


وقتی از Hibernate استفاده میکنیم میتوانیم از Named Parameter برای بالا بردن میزان اطمینان در ارسال اطلاعات SQL query ها استفاده کنیم اما ممکن است هنگام کار با این پارامتر ها با دو خطای متداول که یکی برای موقعی که بتنهایی از Hibernate استفاده میکنیم و دیگری hibernate پیاده سازی شده JPA بر بخوریم 


آن دو خطا رایج عبارت است از :


- Not all named parameters have been set

- Named parameter not bound


اگر چه در ظاهر خطا های متفاوتی هستند ولی علت رخ دادن آنها یکی است 




چه چیزی باعث میشود این خطا ها رخ دهند :


قبل از اجرای کوئری های دارای Named Parameter ما مقادیری را به این Named Parameter ها نسبت میدهیم و بعد کوئری اجرا میشود 

Query<Event> query = session.createQuery("from Event E WHERE E.title = :eventTitle", Event.class);

در این مثال ما یک Named Parameter بنام eventTitle داریم که هایبرنیت میخواهد آنرا با مقداری پر کند و اگر ما آن مقدار را مشخص نکرده باشیم پیام Not all named parameters have been set از خطای org.hibernate.QueryException را میتوانیم مشاهده کنیم 



برای جلوگیری از رخ دادن این خطا ما میتوانیم مقادیر را با استفاده از متد setParameter به کوئری هایبرنیت اضافه کنیم :


Query<Event> query = session.createQuery("from Event E WHERE E.title = :eventTitle", Event.class);
query.setParameter("eventTitle", "Event 1");
  
assertEquals(1, query.list().size());








نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی