有没有办法在每个事务在datomic中提交之前将事务函数附加到每个事务中?例如,无论事务的来源如何,我们都希望使记录无效。
答案 0 :(得分:1)
是的,您可以在提交事务之前“追加”或者更确切地说调用事务函数。事务处理器将在其db:fn属性中查找该函数,然后调用它,传递db的值(当前截至事务开始时)。因此,您需要在每次交易之前拨打电话。
请注意,交易功能没有api或流量来自动调用每个交易呼叫的交易功能。对于每次交易的调用,您都需要调用验证交易函数。
答案 1 :(得分:0)
如果要验证传入的事务数据,可以在对等端进行一些欺骗以验证它。例如,您可以使用db,使用with
获取应用传入事务的“假”数据库,然后根据该数据库进行验证。例如,您可以使用来自with
的此“假”数据库上的常规Datomic API轻松获取基于此事务触摸的实体,并查看传入事务是否触及实体不允许触摸
如果您想在交易方面验证某些内容,您唯一的选择是手动调用数据库函数。