jooq

2016-08-31 3 views
1

와 UPDATE에서 원시 가치 표현식을 사용하여 이것은 내가 실행하려고 쿼리입니다. 내가 jooq에서이 작업을 수행 할 때, :jooq

this.ctx.update(Tables.USERS) 
    .set(Tables.USERS.METADATA, "metadata-'keyA'-'keyB'") 
    .where(<condition>) 
    .execute(); 

나는 오류가 value 다음 전체 내가 추측하고있는하는 CHARACTER VARYING하지 JSONB 인 쿼리가 바인드 값으로 생성되고 있기 때문에, 그리고 말하는 얻을 문자열이식이 아닌 삽입하려고합니다.

jooq에서이 값 표현식을 어떻게 수행합니까? 당신이 set 메소드에 전달하는 어떤

답변

1

:

"metadata-'keyA'-'keyB'" 

는 ... 직접 결과 SQL 문자열에 주입 표현이 아니다. String 유형의 바인드 변수 (예 : VARCHAR)입니다. 가장 쉬운 방법은 앞으로 "일반 SQL을"사용에 의지하는 것입니다 : http://www.jooq.org/doc/latest/manual/sql-building/plain-sql

: jOOQ과 "일반 SQL을"사용에 관한 자세한 내용은

.set(USERS.METADATA, field(
    "{0} - {1} - {2}", 
    USERS.METADATA.getDataType(), 
    USERS.METADATA, val("keyA"), val("keyB") 
)) 

이 매뉴얼의이 섹션을 참조하십시오