我正在使用以下函数更新我的数据库值,该函数在启动时更新,
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 默认情况下使用缓存的数据库值。有没有办法使用非缓存值,以便我的代理参数在启动时获得更新的值?
是的。每个查询函数都有一个重载的“兄弟”函数,可让您指定是否要访问缓存版本或(较慢的)非缓存版本。只需检查代码完整的 API 调用即可。
例如,
count()
调用也有count(boolean cached)
版本。与firstResult(...)
相同
或者使用
List<Tuple> rows = selectFrom(myTable).list();
因为这始终是非缓存的