0
EJB 쿼리에서 SQL 주입 공격을 피하기 위해 문자열 매개 변수를 연결하는 대신 setParameters()를 사용하는 것이 좋습니다.EJB 쿼리에서 ''안에 매개 변수를 설정하는 방법
내 질문은 : 'SET'와 SQL 업데이트 문에서 ''내에서 매개 변수를 설정하는 방법 :
String basicQuery = "update some table set somecolumn = ':para'";
Query query = em.createQuery(basicQuery);
query.setParameters("para", someString);
런타임은이 매개 변수 "파라"를 찾을 수 없습니다 뿌려줍니다. 모든 해결 방법을 주시면 감사하겠습니다.
이 답변은 단지 | _ | "명명 된 매개 변수를 사용할 때 따옴표가 필요하지 않으며 구문을 방해하는 것입니다"라고 말하면 훨씬 더 좋습니다. "제거"라고 말하면됩니다. –
따옴표가 없으면 SQL 구문 오류가 발생합니다. – Wangge
아니요 - SQL을 작성하지 않습니다. 추상적 인 EJBQL (또는 JPAQL)을 작성 중입니다. ': para'는 명명 된 매개 변수 ("para")의 구문이고'setParameter'는 이름과 값을 취하며 JPA 구현은 입력을 삭제하고 따옴표를 추가합니다. –