문제

Java를 사용하여 Datastore에서 원치 않는 데이터를 삭제하려고 노력하고 있으며 10 초 안에 가능한 한 많은 항목을 삭제하도록 수정 한 DatastorEservice를 사용하여 일부 코드를 찾았습니다.

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("PostalCodes");
long starttime = (new Date()).getTime();
for (Entity entity : datastore.prepare(query).asIterable()) {
        datastore.delete(entity.getKey());
        if ((new Date().getTime()) > (starttime + 10000))
                break;
}

내가 이것을 실행할 때 효과가있는 것 같습니다. 콘솔의 데이터 뷰어를 확인하고 삭제하려는 종류 ( "PostalCodes")가 사라졌지만, 다음날이 작업을 수행 한 다음날 모든 것이 복원되었습니다. 플러시하거나 커밋하라는 전화가 누락 되었습니까?!?

더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

비슷한 질문을 살펴보십시오. Google App Engine에서 모든 종류의 데이터 삭제 다른 방법은 정보 삭제를 대량으로 삭제합니다.

다른 팁

'Datastore Admin'내에서 특정 유형의 모든 엔티티를 삭제할 수 있습니다.

엔티티를 선택한 다음 '엔티티 삭제'를 선택하십시오.

enter image description here

public final class PMF {
    private static final PersistenceManagerFactory pmfInstance =
        JDOHelper.getPersistenceManagerFactory("transactions-optional");

    private PMF() {
        PersistenceManagerFactory pmfInstance = PMF.get();
        PersistenceManager pm = pmfInstance.getPersistenceManager();
        pm.deletePersistentAll();/* by using this all the entities which are created earlier will be deleted*/
    }

    public static PersistenceManagerFactory get() {
        return pmfInstance;
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top