문제

사용자 이름을 확인 하고이 특정 사용자 이름에 대한 기타 정보를 검색 할 때 UTF8 Charset 및 UTF8 Collation이있는 로그인 테이블이 있습니다. HQL 쿼리는 소문자와 대문자로 동일한 결과를 제공합니다. 내 HQL 쿼리를 위해 어떻게해야합니까?

이것은 내 질문입니다.

return queryManager.executeQueryUniqueResult("select b.login from BranchEntity b where b.userName = ?", username);
도움이 되었습니까?

해결책

가장 쉬운 방법은 칼럼 정의를 변경하여 케이스에 민감한 콜레이션을 사용하는 것입니다. utf8_bin.

세부 사항은 다음과 같습니다 여기

다른 팁

수업을 추가하십시오

public class CollateDialect extends MySQLDialect {
    @Override
    public String getTableTypeString() {
        return " COLLATE utf8_bin";
    }
}

그리고 그것을 사용하십시오 :

cfg.setProperty("hibernate.dialect", "org.kriyak.hbm.CollateDialect");

이렇게하면 모든 쿼리가 훨씬 더 많은 쿼리가됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top