我正在尝试使用rdf4j在sparql更新查询上支持“干运行”功能。我想通知用户将插入/删除的语句,最好是从当前事务中获取语句。我的想法是:
conn.begin();
Update query = conn.prepareUpdate(queryString);
query.execute();
// Print statements in the transaction
System.out.println("Dry run completed.");
conn.rollback();
System.out.println("Dry run rolled back.");
有没有办法用rdf4j做到这一点?
1条答案
按热度按时间tcbh2hod1#
(抄袭自https://github.com/eclipse/rdf4j/discussions/3163 )
你可以用一个
SailConnectionListener
. 但是访问这个的方法有点笨拙。下面是一个例子:正如你所看到的,我们需要
RepositoryConnection
到特定类型以检索基础SailConnection
,然后我们需要更进一步地SailConnection
到NotifyingSailConnection
能够注册SailConnectionListener
在上面。此侦听器将接收单个语句的预提交添加和删除事件。运行上述代码将产生以下控制台输出: