주소와 같은 엔티티가 있습니다. 성능 문제로 인해 전체 필드를 "street; zip; city"와 같은 단일 필드에 저장하려고합니다.SQL 인젝션을 피하면서, Hibernate에서 String 유사 정보를 저장하기위한 EnhancedUserType을 작성하십시오.
이렇게하려면 EnhancedUserType을 만들 수 있습니다. 내가 찾은 몇 가지 예에서와 방법 "objectToSQLString을"최대 절전 모드의 소스는 항상 그런 식으로 구현됩니다 방법은 SQL 표현을 반환 아닌지 내가 이해하지 못하는
@Override
public String objectToSQLString(Object object) {
if (object != null) {
Address oo = (Address)object;
return "'" + oo.toSomeString() + "'";
} else {
return "";
}
}
. [ ']와 같은 특수 기호가 문자열 안에 이스케이프되지 않는 이유는 무엇입니까? 어떻게 그들을 벗어나야합니까? 표준 SQL 방법은 [ '] -> [' ']이지만, 일부 방언 [백 슬래시]도 이스케이프해야합니다.
dialect에 의존하여 나를 위해 이스케이프 처리를 수행 할 수있는 Hibernate 유틸리티가 있습니까? Hibernate는 어떻게이 문제를 해결할 수 있습니까? 소스 코드에서 찾을 수 없습니다 :-(
[구성 요소 매핑] (http://docs.jboss.org/hibernate/core/3.3/reference/en/html/components.html)? – millimoose
JDBC 준비 문을 사용할 수없는 이유는 무엇입니까? – ChadNC
필자는 Prepared Statement를 항상 사용하지만, Hibernate는이 메소드가 포함 된 EnhancedUserType을 구현하기를 원한다. – 30thh