2016-11-03 5 views

答えて

1

はい、トランザクションをコミットする前に「追加」するか、トランザクション関数を呼び出すことができます。トランザクションプロセッサは:db/fn属性で関数を検索し、dbの値を渡して呼び出します(現在はトランザクションの開始時点)。そのため、各取引の前に電話をかける必要があります。

各トランザクションコールでトランザクション関数を自動的に呼び出すトランザクション関数からのAPIやフローはありません。取引を呼び出すたびに、有効な取引機能を呼び出す必要があります。

http://docs.datomic.com/database-functions.html

0

あなたが入ってくるトランザクションデータを検証したい場合は、それを検証するために、ピア側でいくつかのトリックを行うことができます。たとえば、dbを使用して、withを使用して、着信トランザクションが適用された「偽の」データベースを取得し、そのデータベースに基づいて検証します。たとえば、このトランザクションに基づいてタッチされたエンティティを、withのこの「偽の」データベースの通常のDatomic APIを使用して取得し、入力トランザクションがエンティティに接触できなかったかどうかを確認できます。

ただし、トランザクション側で何かを検証したい場合は、データベース機能を手動で呼び出すことが唯一の選択肢です。