2014-08-29 3 views
0

DataNucleus를 사용할 때 DISTINCT 키워드가 쿼리에서 제거 된 이유는 누구입니까? (회사에서 사용하는 소프트웨어입니까?) 코드를 디버그하여 키워드가 실제로 쿼리와 일치하는지 확인했습니다. 그러나 시간이 기능은 DISTINCT 키워드가 제거 JPAEntityManagerDISTINCT 키워드가 쿼리에서 제거됨

createQuery(CriteriaQuery<T> criteriaQuery) 

내에서 호출된다. 디버깅 내게 그것은

criteria.getCompilation(ec.getMetaDataManager(), ec.getClassLoaderResolver()); 

함수 호출과 관련이 있음을 보여주었습니다. 어떻게 든 createQuery() 함수는 SELECT COUNT (DISTINCT DN_THIS)와 잘 동작하지만 SELECT DISTINCT FROM에서는 작동하지 않습니다.

여러분 중 일부는 JPA와 SQL 쿼리가 상당히 새롭고 일반적으로 빠른 해결책을 찾을 수 없기 때문에 문제가 어디 있는지 최소한의 아이디어가 있기를 바랍니다.

는 다음과 내가 수행하기 위해 노력하고있어 쿼리가 될 때 :

SELECT DISTINCT DN_THIS FROM Hop DN_THIS JOIN DN_THIS.tags t WHERE ((DN_THIS.entityStatus <> 'DELETED') AND ((t.name = :DN_PARAM_4) OR (t.name = :DN_PARAM_5))) ORDER BY DN_THIS.name ASC 

감사합니다!

+0

SQL 쿼리를 질문에 추가하십시오. – heikkim

+0

이제 수정되었습니다. – trashed

+0

왜 사용하는 기준 코드를 정의하지 않은 다음에는 criteriaQuery의 toString()을 게시하십시오. 실행시 로그에있는 내용 –

답변

0

DataNucleus 개발자는 이미 fixed the use of DISTINCT in criteria이 생성 된 쿼리로 전달되지 않았던 것처럼 보입니다.

+0

네, 도와 줘서 고마워. DataNucleus JPA API를 사용하는 버전 3.2.5가 있고 현재 JPA API 버전은 4.0.2입니다. DISTINCT 이슈가 이미 Criteria에서 수정 되었다면 나에게 의미가있다. – trashed

관련 문제