2015-01-18 3 views
10

나는과 같이 쿼리를 기반으로 Realm.io 데이터베이스에서 마지막 개체를 삭제하는 것을 시도하고있다 :realm.io에서 항목을 제거하면 어떻게됩니까? RealmException "개체를 제거 할 수 없습니다."

realm.beginTransaction(); 
result.removeLast(); 
realm.commitTransaction() 
이 정확히 삭제에 대해 Realm.io instructions에 기록 된 것 같다

Realm realm = Realm.getInstance(this); 
    final RealmResults<RealmCustomLocation> databaseLocations = realm.where(RealmCustomLocation.class).findAllSorted("timeStamp", RealmResults.SORT_ORDER_DESCENDING); 
    if(databaseLocations.size() >= 4){ 
     realm.beginTransaction(); 
     databaseLocations.removeLast(); 
     realm.commitTransaction(); 
    } 

하지만 코드를 실행할 때 항상

io.realm.exceptions.RealmException: Removing object is not supported. 

가 그럼 난 RealmResults.jav의 소스 코드를 보이는 RealmException 함께 나누기 A와 나는 이것을 찾는다. enter image description here 그래서 충돌이 계속되는 것은 당연한 일이며, removeLast()는 아무 일도 일어나지 않고 오직 에러를 던진다!

내 질문은 : 그럼 데이터베이스에서 개체를 제거 할 수 있습니까?!

Android에서 realm.io 0.77 ('io.realm : realm-android : 0.77.0'을 컴파일 중입니다.)을 사용하고 있습니다.

감사합니다.

답변

7

답변을 기다리는 중에 Realm.io 지원에 연락했습니다. 그 동안의 경우 :

RealmCustomLocation location = databaseLocations.get(databaseLocations.size() - 1); 
location.removeFromRealm(); 

databaseLocations.removeLast() 

에 해당하므로이 해결 방법으로 사용할 수 있습니다 작동합니다.

편집 : 지원 담당자가 향후 버전에서 수정 중이며 내가 게시 한 임시 해결책을 사용하도록 권장한다고 말했습니다.

+0

Realm.io에서 어떤 단어? – mfaerevaag

+1

업데이트가 아직 없습니다. 문제가 해결되지 않았거나 요청을 잊어 버렸습니다. 제 생각에 Realm이 지금 충분히 성숙하지 않았기 때문에 DBFlow로 옮겼습니다 –

+4

그냥 저 자신을 만났습니다. 나는 그들이 최소한 어떻게 문서를 삭제하는지에 대한 문서를 갱신하지 않았다고 믿을 수 없다. –

1

모든 개체를 삭제하고 싶은 경우에, 나는이 같은 while 루프를 만들 것입니다 :

while (location.size() > 0) { 
    location.removeLast(); 
}