我有一个ThreadLocale,我在设置一些我想要在创建mongo文档时读取的值。
@Service
public class DocumentContext {
private ThreadLocal<String> currentValue = new ThreadLocal<>();
public void setName(String documentName) {
currentValue.set(documentName);
}
public String getName() {
return currentValue.get();
}
}
我用它来设置我的过滤器中的值:
@Autowired
private DocumentContext docContext;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
final String col= "value1";
docContext.setCurrentValue(col);
chain.doFilter(request, response);
docContext.setCurrentValue(null);
}
现在我有我的POJO课程,我正在使用这样的课程:
@Data
@Document(collection="doc.#{docContext.getName()}.tableName")
class Entity{
}
但是,在mongo我得到的集合名称为:
doc..tablename
我在期待:
doc.value1.tablename
请建议我错过了什么。