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 номи ҷадвали дар базаи додаҳо аст, на номи ҳодиса. Ин пурсиш мустақиман дар база иҷро мешавад.