Junior — Middle
Կարող եք բացատրել, թե ինչ է ենթադրվում՝ օգտագործելով native 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 տվյալների բազայի աղյուսակի անունն է, ոչ թե միավորի անունը։ Այս հարցումը ուղղակիորեն կիրականացվի տվյալների բազայում։