Nachdem ich eine Transaktion in Datomic ausführen, um einen Wert einzufügen, wie kann ich den Rückgabewert der Transaktion verwenden, um die IDs von Entitäten zu erhalten, die erstellt wurden? HierErmitteln der ID einer eingefügten Entität in Datomic?
ist eine Probe des Rückgabewertes I nach einem Einsatz kommen:
#<[email protected]: {:db-before [email protected], :db-after [email protected],
:tx-data [#Datum{:e 13194139534331 :a 50
:v #inst "2013-06-19T11:38:08.025-00:00"
:tx 13194139534331 :added true} #Datum{:e 17592186045436 .....
Ich kann das zugrunde liegende datum sieht ... wie kann ich ihre Werte extrahiere?
Ah süß, ich wusste, dass es einen idiomatischen Weg geben sollte, Dinge zu tun. Ich beschränkte meine Ansätze auf Funktionen, die garantierten, dass sie nur eine Entity einfügen würden, aber es ist wirklich nett, mit dem allgemeinen Fall umgehen zu können. – HaskellMan
Ist '(d/transact conn [{: db/id" myentity ": etwas/attr 123}])' äquivalent zu '(d/tempid" myentity ")'? –
Ich habe eine Situation, in der ich die Entity-ID vor dem Einfügen der Daten kennen muss, da ich diese ID woanders ablegen muss, bevor ich alle für das Einfügen notwendigen Daten bekomme (Normalerweise geschieht dies durch Transaktion in anderen Datenbanken) . Wäre der Tempid dafür nützlich? Die Tatsache, dass du eine tempid zu einer echten ID auflösen kannst, scheint zu bedeuten, dass ich später die tempid zu der echten ID ändern müsste. – CMCDragonkai