2013-10-03 1 views
5

데이터베이스에서 고유 한 값을 가져 오려고합니다. 현재 ORMlite를 사용하고 있습니다. 나는 다음 코드를 시도했다. 하지만 쿼리를 수행 할 때부터 여전히 값이 반복됩니다. 아무도 내가 잘못한 곳을 지적 할 수 있습니까? 아래 예제 코드를 게시합니다.ORMlite에서 고유 값을 선택하는 방법은 무엇입니까?

smsDao = databaseHelper.getSmsDao(); 
    QueryBuilder<SMSObject, Object> queryBuilder = smsDao.queryBuilder(); 
    queryBuilder.distinct().selectColumns("timestamp"); 

    try { 
     preparedQuery = queryBuilder.prepare(); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    try { 
     smsObject = smsDao.query(preparedQuery); 
    } catch (SQLException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

도움이 될만한 답변이 있습니다.

+0

똑같은 문제가 있습니다. 솔루션을 얻었습니까? – rOrlig

답변

1
dataList = Utils.getDBHelper(ItemList.this).getItemDao().queryBuilder().where().in("nameid", lis).query();  

이것은 이전에 내 앱에서 사용한 코드입니다. 그것은 데이터베이스에서 중복 값을 검색하고있었습니다. 그런 다음 distinct() 메서드로 업데이트하고 모든 것이 잘 작동하기 시작했습니다.

dataList = Utils.getDBHelper(ItemList.this).getItemDao().queryBuilder().distinct().where().in("nameid", lis).query(); 

참고 : 여기서 'lis'는 검색 매개 변수가 추가되는 반복 목록입니다. 가지고 있지 않으면 'in()'대신 'eq()'를 사용할 수 있습니다.