오래된 데이터베이스와 함께 성배/최대 절전 모드 사용. 누락 된 기능을 만드는 방법?
문제
따라서 최대 절전 모드는 최신 버전의 Firebird를 지원합니다. 하지만...
나는 여기에 Firebird 1.5.2 데이터베이스를 왔습니다. My My Grails App은 Hibernate를 통해이 데이터베이스를 사용하여 앱입니다. 지금까지 모든 것이 훌륭합니다.
내 앱은 데이터베이스에 알려지지 않은 함수가있는 쿼리를 보냅니다. 예를 들어 2.x 이후 Firebird에서 지원되는 기능이 낮습니다.
내 질문 : 내 데이터베이스에 대한 특별한 최대 절전술 방언을받을 수 있습니까? 현재 나는 사용 중입니다 : dialect = "org.hibernate.dialect.firebirddialect"
이 알 수없는 기능을 처리하는 데이터베이스를 어떻게 도울 수 있습니까?
해결책
FireBirdDialect를 서브 클래스하고 다른 값을 반환 해야하는 모든 기능을 덮어 쓰면 자신만의 방언 클래스를 만들 수 있습니다.
하이버 네이트가 소문자에 사용하는 기능의 이름을 바꿔야하는 간단한 경우, 단순히 최대 절전 모드 구성에서 다음을 설정할 수 있습니다.
hibernate.query.substitutions tolowercase = mylower
그러나 Firebird 1.5는 일종의 TolowerCase 기능이 없으므로 직접 구현해야합니다. 파이어 버드 문서에 설명 된대로.
제휴하지 않습니다 StackOverflow