Dopo aver eseguito una transazione in datomic per inserire un valore, come posso utilizzare il valore restituito della transazione per ottenere gli ID di qualsiasi entità che è stata creata?Ottenere l'ID di un'entità inserita in datomic?
Ecco un esempio del valore di ritorno ottengo dopo un inserimento:
#<[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 .....
posso vedere i Riferimenti alla base ... come posso estrarre i loro valori?
Ah dolce, sapevo che ci dovrebbe essere un modo idiomatico di fare le cose. Stavo attualmente limitando i miei approcci a funzioni che garantivano che avrebbero inserito solo un'entità, ma è davvero bello essere in grado di gestire il caso generale. – HaskellMan
È '(d/transact conn [{: db/id" myentity ": some/attr 123}])' equivalente a '(d/tempid" myentity ")'? –
Ho una situazione in cui ho bisogno di conoscere l'id dell'entità prima dell'inserimento dei dati, in quanto ho bisogno di mettere quell'ID da qualche altra parte prima di poter ottenere tutti i dati necessari per l'inserimento (di solito questo avviene tramite transazione in altri database) . Il tempid sarebbe utile per questo. Il fatto che tu possa risolvere un tempid in un vero ID sembra significare che in seguito dovrei cambiare il tempid con il vero id. – CMCDragonkai