ResultSetMapper实现应该是线程安全的吗?

问题描述

我一直试图在同一个ResultSetMapper中折叠多行,我有一个Map<String,Mappedobj> map,我只是用来将多行折叠到相同的对象,

public Mappedobj map(final int index,final ResultSet r,final StatementContext ctx) {
   Mappedobj mappedobj = map.get(r.getString("Id"));
   if (mappedobj!=null){
      mappedobj.addValue(r.getString("RowToFold"));
   } else {
      mappedobj = new Mappedobj();
      // Mapping
      map.put(mappedobj.getId(),mappedobj);
   }
   return mappedobj;
}

我担心的是,如果并行调用ResultSetMapper :: map,则此代码将中断。从jdbi Query,我看到它不是并行调用的,但是我不确定这是否意味着实现非线程安全的安全。我的方法可以安全使用吗?

这实际上是一个普遍的问题。如果没有记录,接口实现的认线程安全假设是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)