Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რა იგულისხმება Hibernate-ის @Query ანოტაციაში native SQL-საკითხების გამოყენებაში?

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 არის ბაზის ტაბლის სახელი, არა ობიექტის სახელი. ეს შეკითხვა პირდაპირ შესრულდება ბაზაში.