如何在anylogic中使用没有缓存的数据库值作为代理参数值?

问题描述 投票:0回答:1

我正在使用以下函数更新我的数据库值,该函数在启动时更新,

if(location_port==1){
 update(connection)
        .where(connection.condition.eq(1))
        .set(connection.source_name, "Stephenville Crossing")
        .execute();
 update(connection)      
        .where(connection.condition.eq(2))
        .set(connection.destination_name, "Stephenville Crossing")
        .execute();
        
        }

我将这些值与代理参数连接起来。

所以这是我的问题:关闭模拟后,这些值会更新。如果我运行该模型,它就会起作用。但有没有办法在当前的模拟过程中做到这一点?

N.B:我确实了解到 Anylogic 默认情况下使用缓存的数据库值。有没有办法使用非缓存值,以便我的代理参数在启动时获得更新的值?

anylogic
1个回答
0
投票

是的。每个查询函数都有一个重载的“兄弟”函数,可让您指定是否要访问缓存版本或(较慢的)非缓存版本。只需检查代码完整的 API 调用即可。

例如,

count()
调用也有
count(boolean cached)
版本。与
firstResult(...)

相同

或者使用

List<Tuple> rows = selectFrom(myTable).list();
因为这始终是非缓存的

© www.soinside.com 2019 - 2024. All rights reserved.