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