Hibernate 기본 쿼리에서 MySQL 할당 연산자 사용
Hibernate에서 기본 SQL 쿼리를 실행하려면 일반적으로 지원되지 않는 특정 SQL 연산자와 구문을 사용해야 합니다. ORM 프레임워크에서 기본적으로 지원됩니다. 그러한 연산자 중 하나는 하위 쿼리의 컨텍스트에서 사용되는 MySQL 할당 연산자(:=)입니다.
Hibernate 기본 쿼리에서 :=" 연산자를 활용하려고 하면 사용자는 "Space is"와 유사한 오류를 접할 수 있습니다. 매개변수 접두사 ':' 뒤에는 허용되지 않습니다. 이는 Hibernate가 쿼리를 구문 분석하고 ":="를 매개변수 자리 표시자로 해석하여 혼란을 야기하기 때문입니다.
문제 해결
Hibernate 4.1.3 및 이후 버전에서는 이 문제가 해결되었습니다. 기본 쿼리에서 "=:" 연산자를 성공적으로 사용하려면 간단히 백슬래시()로 이스케이프 처리하세요. 이는 Hibernate가 연산자를 다음과 같이 처리하도록 지시합니다. 매개변수 대신 리터럴.
업데이트된 쿼리
다음은 백슬래시 이스케이프를 사용하여 업데이트된 쿼리입니다.
SELECT k.`news_master_id` AS id, @row \:= @row + 1 AS rownum FROM keyword_news_list k JOIN (SELECT @row \:= 0) r WHERE k.`keyword_news_id` = :kid ORDER BY k.`news_master_id` ASC
" =:" 연산자인 경우 Hibernate가 이를 매개변수 플레이스홀더가 아닌 MySQL 할당 연산자로 해석하도록 지시하여 기본 쿼리에서 연산자를 올바르게 사용할 수 있도록 합니다.
위 내용은 Hibernate 네이티브 쿼리에서 MySQL 할당 연산자(:=)를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!