>  기사  >  데이터 베이스  >  Hibernate 네이티브 쿼리에서 MySQL 할당 연산자(:=)를 이스케이프하는 방법은 무엇입니까?

Hibernate 네이티브 쿼리에서 MySQL 할당 연산자(:=)를 이스케이프하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 05:30:29472검색

How to Escape the MySQL Assign Operator (:=) in Hibernate Native Queries?

Hibernate 네이티브 쿼리에서 MySQL 할당(=) 연산자 이스케이프

Hibernate 네이티브 쿼리로 작업할 때 사용하는 동안 오류가 발생할 수 있습니다. 콜론(:) 뒤의 공백으로 인해 MySQL 할당 연산자(:=)가 발생합니다. 이 문제는 subselect 문이 필요한 경우에 특히 두드러집니다.

제공된 코드는 이를 보여줍니다.

SELECT sub.rownum FROM (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) AS sub WHERE sub.id = :nid

setParameter를 사용하여 이 쿼리를 실행하면 콜론 뒤의 잘못된 공백을 강조 표시하는 예외가 발생합니다. .

다행히도 이제 Hibernate는 이 문제에 대한 솔루션을 제공합니다. Hibernate 4.1.3 이상에서는 아래와 같이 백슬래시()를 사용하여 할당 연산자를 이스케이프할 수 있습니다.

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는 구문을 성공적으로 해석하여 하위 선택 쿼리를 실행할 수 있습니다. 효과적으로.

위 내용은 Hibernate 네이티브 쿼리에서 MySQL 할당 연산자(:=)를 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.