오래된 데이터베이스와 함께 성배/최대 절전 모드 사용. 누락 된 기능을 만드는 방법?

StackOverflow https://stackoverflow.com/questions/1048285

  •  20-08-2019
  •  | 
  •  

문제

따라서 최대 절전 모드는 최신 버전의 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 기능이 없으므로 직접 구현해야합니다. 파이어 버드 문서에 설명 된대로.

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