2015-01-07 1 views
1

where 절에서 여러 값을 전달하고 싶습니다. 배열을 전달하고 있지만 결과는 비어 있습니다.Kundera Mongodb 배열 객체 전달 where

List<String> stringlist=new ArrayList<String>(); 
    stringlist.add("54aca811edc5a179efd28e55"); 
    stringlist.add("54aca79aedc5158d25a93f42"); 
Query q = em 
      .createQuery("Select s from StoreProductMaster s where s.store_id = :ids"); 
    q.setParameter("ids",stringlist); 
    List<StoreProductMaster> tweets = q.getResultList(); 

도움말 나

+0

당신은 동일한 주제에 무슨 총계에 답하거나 용납되지 몇 가지 질문이 있습니다. Kundera는 "모든 사람에게 모든 것을"하려고하는 것이므로 SQL RDBMS와 NoSQL 솔루션을 모두 스토리지 엔진으로 허용합니다. 그러나 SQL 개념은 간단한 예제를 제외하고는 NoSQL에 잘 맵핑되지 않습니다. 당신이 여기서 요구하는 것은 "네이티브 질의"지원을 필요로하는 것처럼 보일 것입니다. 물론 여기에있는 MongoDB 어댑터는 MongoDB와 같은'$ in'에 매핑 된 IN을 사용하는 문장을 처리 할만큼 똑똑합니다. 어쨌든 이들은 아마도 ObjectId 값이고 문자열은 아닙니다. –

+0

글쎄, 당신의 요점은 단지 Kundera를 바라 보는 것의 작은 부분 일 뿐이라고 생각합니다. Kundera는 "원 스톱 솔루션"이므로 Mongo DB 또는 Cassandra 특정 기능을 사용하는 것을 중단하지 않습니다. 당신은 항상 그걸 실행할 수 있습니다. –

답변

0

@Sreekant 당신이 당신의 쿼리에 포함해야한다고 생각하지 않는다

당신이 콜렉션에서 여러 ID에 대한 결과를 가져 오기 위해 필요로 " in "대신"in "절을 사용합니까?

질의 q = EM .createQuery ("선택의 StoreProductMaster의에서 s.store_id 곳에서 : ID를"); q.setParameter ("ids", stringlist); List tweets = q.getResultList();

Chhavi