다음 코드는 과 잘 동작한다.HSQLDB 메모리 내 데이터베이스를 사용할 때, Hibernate/JPA EntityManager는 HSQL 스크립트에 대한 매개 변수를 취하지 않는다.
그러나 단위 (시험) 데이터베이스,
쿼리 쿼리 = entityManager.createQuery는 ("CartInvoiceEntity C로부터 C를 선택 HSQLDB에 메모리 전환시에 동일한 코드 WHERE c.invoiceId가 = 실패 invoiceId을 ");
query.setParameter ("invoiceId", cartInvoiceEntity.getInvoiceId()); 다음과 같은 오류 메시지가
:
org.hibernate.QueryParameterException : 쿼리 개체가 매개 변수 [invoiceId]
디버깅 질의 객체시에 검사 이름을 찾을 수 없습니다, 내가 발견 매개 변수 필드. MySQL을 사용할 때,이 매개 변수는 HashMap에 "invoiceId"를 포함합니다. 그러나 HSQLDB로 전환 할 때이 HashMap은 비어 있습니다. 이것이 예외가 throw 된 이유입니다. 문제는 HSQLDB가 사용되는 HashMap이 비어있는 이유입니다. 1.0.1.Final가 사용되며 간접적으로 모두 최대 절전 모드 코어에서 참조 :
관련 메이븐 의존성
종속성 계층 구조에서<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.16</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
<scope>test</scope>
</dependency>
입니다 다음, 나는-최대 절전 모드 JPA-2.0.api 볼 수 있습니다 및 hibernate-entitymanager JAR을 포함한다.
도움이 되었으면 좋겠습니다.
2.2.9와 같은 최신 버전의 HSQLDB를 사용해 보시지 않겠습니까? – fredt