Sobes.tech
Junior — Middle

Оё метавонед шарҳ диҳед, ки истифодаи дархостҳои SQL-и аслӣ дар аннотатсияи @Query дар Hibernate чӣ маъно дорад?

sobes.tech AI

Ҷавоб аз AI

Дар Hibernate, аннотацияи @Query имкон медиҳад, ки дар навиштани пурсишҳо барои гирифтани маълумотҳо истифода шавад. Ба таври пешфарз, ин HQL (Hibernate Query Language) — забони пурсиши объектӣ-ориентшуда мебошад. Аммо, агар шумо хоҳед, ки пурсиши SQL-и маҳаллӣ истифода баред, метавонед дар @Query параметри nativeQuery = true нишон диҳед.

Ин маънои онро дорад, ки пурсиш мустақиман ҳамчун SQL иҷро мешавад, бе табдил додани Hibernate. Ин барои истифодаи функсияҳои махсуси базаи додаҳо ё пурсишҳои мураккаб, ки дар HQL баён кардан душвор аст, муфид аст.

Масалан:

@Query(value = "SELECT * FROM users WHERE status = ?1", nativeQuery = true)
List<User> findUsersByStatusNative(String status);

Ин ҷо, users номи ҷадвали дар базаи додаҳо аст, на номи ҳодиса. Ин пурсиш мустақиман дар база иҷро мешавад.