2014-10-30 17 views
4

querydsl에서이 쿼리를 수행 할 수있는 방법이 있습니까? QClass에서 querydsl - 열의 중간에있는 공백을 제거하십시오.

SELECT * 
FROM table 
WHERE replace(column_name, ' ', '') = 'someValue'; 

StringPath

에는이 없습니다. replace() 기능이 있어야하며 일부 문자 (특히 중간의 공백 문자)는 someValue으로 테스트하기 전에 column_name에서 제거해야합니다.

샘플 column_name 내용 : someValueABC, DEF, AB *

경우 ABC, ABCAB*가 나타납니다.

+0

당신이 Querydsl가 JPA 또는 JDBC와 함께 사용하십니까를 통해 대체 호출을 표현할 수 있습니까? –

+0

@ TimoWestkämper 우리는 JDBC를 사용하고 있습니다. – Cezille07

답변

4

당신은

Expressions.stringTemplate("replace({0},' ','')", columnPath) 
+0

대단하군요! 나는 이것이 가능하다는 것을 몰랐다. 이 마지막 조건이다. 'BooleanBuilder B = 새로운 BooleanBuilder() andAnyOf ( \t Expressions.stringTemplate ("대체 ({0} '', '')", columnPath) .like (someValue.substring (0,2) \t Expressions.stringTemplate (columnPath "({0} '' '') 바꾸기") .like (someValue.substring (0,1) + "*"), \t columnPath한다. – Cezille07

+0

안녕하세요, columnValue의 대시 (-)와 대시 (-)를 대체하려는 경우 어떻게 할 수 있습니까? –

관련 문제