Frage

Gibt es eine Möglichkeit, um eine Einheit zu löschen, ohne sie aus dem Datenspeicher zuerst holen zu müssen? Ich gehe davon aus ich schon den Schlüssel oder die ID für das Unternehmen haben. Ich denke an so etwas wie deleteObjectById, die einen Analog getObjectById auf PersistenceManager sein würde.

Die nächstgelegene ich denken kann, ist Query.deletePersistentAll() mit (wie gesehen hier ) und eine Abfrage angeben, die nur auf dem Schlüssel beruht, aber ich kann nicht sagen, ob das das Unternehmen holen vor dem Löschen ihm geht.

Dank

EDIT: Ich weiß, wie dies zu tun, das niedrige Niveau API, sowie in dem Python-API. Ich frage mich, ob es einen Weg war es in der JDO-Schicht zu tun.

War es hilfreich?

Lösung

Datanucleus beantwortet meine Frage auf der google-Gruppe :

  

Nicht wirklich. Das Problem ist, dass ein Objekt Beziehungen haben kann und so,   da diese Kaskade von Vorgängen führen kann, hat es in der Regel sein   zuerst in den Speicher geladen. Die einzige Situation, in der es nicht brauchen würde   wenn die Klasse des Objekts in den Speicher geladen werden sollte gelöscht werden musste   keine Beziehungen.

     

Sie geht in den niedrigen Level-API und Objekte Strahlen weg kann oder nicht   haben Auswirkungen auf verwandte Objekte ... vielleicht jemand verantwortlich für   es könnte dazu äußern.

Andere Tipps

Ich bin nicht sicher über JDO, aber für Python dies möglich ist, mit einem kleinen Hack. Sie müssen eine neue Instanz mit dem gleichen Schlüssel „erstellen“ und dann löschen. Es wird nur ein einziges Mal die Datenbank getroffen.

instance = Model(key=key_to_delete, required_property='dummy')
instance.delete()

Wie wäre es die Low-Level-API ?

ich denke, DataService.delete(Key) genau das tun, was Sie brauchen.

Wenn Sie einen Lang als Schlüssel verwenden, wird ned Sie die KeyMaker verwenden zunächst einen Schlüssel zu erstellen.

Key k = KeyFactory.createKey(Employee.class.getSimpleName(), "Alfred.Smith@example.com");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top