realm 사용에 관한 질문 입니다. (primary key 로 지정한 id 얻기


안녕하세요 현재 realm을 사용해서 안드로이드 어플 만들어보기를 연습중인 학생입니다.

공부를 하던중 궁금한 것이 생겨서 이렇게 질문 올려봅니다.

realm에서 질의를 통해서 find를 할 때 realm.where( .class).findFirst();를 통해서 제일 처음 저장된 데이터를 얻어올 수 있는데(제일 처음이라고 하긴 애매하고 '가지고 있는 데이터중 가장 오래된 것'이라고 볼 수 있겠군요)

반면에 findLast는 없더군요 ㅠ 제가 findLast를 찾는 이유는

새로 저장할 데이터의 primary key인 id를 지정해 주기 위해서 입니다. 새로 저장할 데이터에 id를 지정해 주기 위해서는 기존에 들어간 것의 가장 마지막 녀석의 id가 있어야 하는데 그것을 얻으려면

RealmResult<E> result = realm.where(E.class).findAll();
int id = result.get(result.size() - 1).getId();

이런식으로 밖에 얻을 수 없나요? 음... 다른 방법이 있을 것 같은데...

findLast라는 것이 있으면

ind id = realm.where(E.class)findLast().getId();

이렇게 해서 한줄로 가능하지않을까?? 했는데 findLast가 없어서 아쉽네요 ㅠㅠ

혹시 다른 방법이 있나요?


조회수 84


1 답변


realm.where(E.class).findAll().sort("primary key", Sort.DESCENDING).findFirst()

이런 방법도 가능하죠

  • 2016년 10월 10일에 작성됨

  • 옷 그런 방법도 있군요. 질문 올리고 나니 든 생각이 realm.where(E.class).max("primary key").longValue(); 이렇게도 얻을 수 있겠구나라는 생각이 들더라구요!!    TuTanKhamen   2016.10.10 22:32     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close