برنامه نویس جاوا
چگونه در هایبرنت cast رو به پائین انجام دهیم؟!
فرض کنید که تو دامنه مدل ما رابطه وراثت وجود داره و میخواهیم در یک کوئری هایبرنت کلاس پدر رو به کلاس های فرزند cast کنیم، اما چگونه؟
در JPA 2.1 عملگر TREAT معرفی شد تا با استفاده از اون بتونیم عملیات cast رو به پائین رو انجام بدیم!
فرض کنید که دامنه مدل های ما مربوط به نویسنده (Author) و انتشارات(Publication) است که انتشارات می تونه انواع مختلفی مثل کتاب(Book) و پست وبلاگ(BlogPost) داشته باشد. همونطور که مشخص هست تو این دامنه مدلها، کلاس انتشارات میتونه کلاس پدر و کتاب و پست و وبلاگ میتونن کلاس فرزند باشند.
حالا میخوام با اجرای یک کوئری و با استفاده از عملگر TREAT نویسندگانی که کتابی دارند که در ISBN آن عبارت 123 وجود دارد را پیدا کنیم.
List<Object[]> result = em.createQuery( "SELECT a, p
FROM Author a
JOIN a.publications p
WHERE treat(p AS Book).isbnNumber LIKE '%123%'").getResultList();
البته از عملگر TREAT در قسمت select هم می تونیم استفاده کنیم. مثلا فرض کنید میخوایم محتوای پستهای یک نویسنده رو select کنیم:
List<String> result = em.createQuery( "SELECT treat(p AS Publication).postContent
FROM Author a
JOIN a.publications p
WHERE a.id = 1").getResultList();
مطلبی دیگر از این انتشارات
معرفی مطالب جالب برنامه نویسی -۳
مطلبی دیگر از این انتشارات
معرفی مطالب جالب برنامه نویسی -۲
مطلبی دیگر از این انتشارات
آشنایی با Docker از نصب تا راه اندازی