현재 프로젝트에서 long-matching-prefix 유형의 쿼리가 필요하지만 기껏해야 bigint . 우리는 우리가 ? 2와? 3및 ? 1 날짜가 2 일 열 사이에있는 매개 변수와 일치 열 DC에서 가장 긴 번호를 찾으려면 아래의 스 니펫에서 솔루션 함께했다 . 3.6.10 Hibernate QueryException : '모든 명명 된 매개 변수가 설정되지 않았습니다.'- :: int
1.0.1
- Postresql 8.4
- 최대 절전 모드 : 여기 는 관련 종속성이 있습니다 :
... String query_string = "SELECT * FROM numberlist WHERE " + "?1 BETWEEN init_date AND COALESCE(end_date,'2999-12-31') " + "AND dc IN " + "(select ?2/(10^i)::int8 from generate_series(0,floor(log(?3))::int) i) " + "ORDER BY dc DESC LIMIT 1"; Query query = emf.createEntityManager().createNativeQuery(query_string, MyNumber.class); query.setParameter(1, valid_date); query.setParameter(2, num); query.setParameter(3, num); MyNumber result = (MyNumber)query.getSingleResult(); ...
우리는 다음과 같은 예외가 점점 :
Caused by: org.hibernate.QueryException: Not all named parameters have been set: [:int8, :int]
을 우리는 문제가 최대 절전 모드가 을 복용 생각 : 및 을 int로 : INT8 매개 변수로하지만 해결책을 찾을 수 없습니다.
도움 주셔서 감사합니다. 내 댓글에 기록 된대로 위, 내가 사용 결국
query.setParameter(1, valid_date);
안녕하세요, _public 클래스로 끝났습니다. LegacyDao가 JdbcDaoSupport_를 확장하므로 최대 절전 모드가 사용중인 DataSource를 다시 사용하므로 작동합니다. – Taka