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 — базадагы таблицанын аты, эмес, объекттин аты. Бул суроо түздөн-түз базада ишке ашырылат.