2012-04-24 2 views
1

Hibernate HQL 기준 쿼리를 테스트하는 간단한 방법을 찾고 있습니다. 나는 IntelliJ의 Hibernate Console 지원을 사용해 보았지만, run into problems을 가지고있다.테스트 Hibernate 쿼리

HQL 쿼리를 테스트하는 간단한 방법을 제공하는 독립 실행 형 도구가 있습니까? 세션 팩토리를 생성하고 인수로 전달 된 쿼리를 실행하는 간단한 콘솔 프로그램이면 충분합니다.

답변

0

H2 (JDBC 메모리) 데이터베이스와 jetty 컨테이너를 사용하여 빌드의 단위 테스트 단계 (또는 JUnit)에서 최대 절전 모드 쿼리를 실행할 컨테이너와 컨텍스트를 만들 수 있습니다.

0

JUnit approch를 시도 할 수 있습니다.

0

콘솔을 사용하면 HQL (예 : Hibernate Tools 일식)을 가지고 노는 첫 번째 선택이됩니다. 그러나 이것이 작동하지 않는다면, JUnit을 사용할 것입니다. 우리 팀은이 전략을 사용하여 프로덕션 코드에서 사용하는 HQL 쿼리를 테스트하고 가끔씩 쿼리를 작성하는 데 도움을줍니다.

테스트 설정에는 메모리 내 데이터베이스를 설정해야합니다 (우리는 HSQLDB을 사용하지만 다른 것들도 있습니다). Hibernate 또는 원시 SQL을 사용하여 데이터를 삽입하십시오. 그런 다음 Hibernate SessionFactory를 설정하여 HQL을 실행하십시오.

다른 종류의 Hibernate 설정이나 동작을 테스트하는데도이 기능을 사용하며, 우리가 업그레이드 할 수 있고 우리가 필요로하는 것이 아무것도 변경되지 않았다고 확신 할 수 있도록 Hibernate에서 우리의 목적을 위해 완전한 테스트 슈트가되는 측면 이점이 있습니다. 뜻밖의 방법.

0

별도의 앱으로 이러한 도구를 사용할 수 있을지 모르겠지만 Spring 컨텍스트에있을 수있는 최대 절전 모드 구성을 지정해야하며 클래스와 해당 HBM 파일을 찾을 수 있어야합니다. 게다가 당신은 다른 UserType이나 다른 JAR의 것들을 사용할 수도 있습니다. 그래서 그것을 검색하지도 않을 것입니다.

나를 위해 최고의 도구는 IDE의 단위 테스트 프레임 워크 + 디버깅 기능입니다. 세션을 만든 지점에서 멈추고이 모드에서 원하는대로 수행 할 수 있습니다. 예를 들어, IntelliJ에서는 일반 표현식을 제외하고 디버깅 중에 Criteria API에 도움이되는 코드 조각을 넣을 수 있습니다.

0

마지막으로 나는 이런 종류의 작업을 수행해야만했습니다. 최대 절전 모드에서 JPA 2.0을 사용하는 데이터 액세스 계층을 테스트하기 위해 DbUnit을 사용했습니다.