如何解决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 举报,一经查实,本站将立刻删除。