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

조회수 1654회

안녕하세요 현재 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가 없어서 아쉽네요 ㅠㅠ

혹시 다른 방법이 있나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

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

    이런 방법도 가능하죠

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)