JPQL مع @Query
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
write explicit queries on entities.
الموضوعات المخطط لها
- JPQL queries entities and their fields, not tables and columns.
- Use named parameters with
@Param. - Optional filters can be written as
(:name is null or lower(p.name) like lower(concat('%', :name, '%'))). - Never concatenate input; parameters are safe.
- Add
@Modifyingfor update/delete queries (they bypass the persistence context, so use sparingly).
تفاصيل المخطط المبدئي
عرض عملي
@Query("""
select p from Product p
where p.category.id = :categoryId and p.price.amount <= :max
order by p.name
""")
List<Product> findAffordable(@Param("categoryId") Long categoryId, @Param("max") BigDecimal max);اختبر فهمك
Does JPQL use table names or entity names?
أظهر الإجابة
Entity names.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.