基本上,我从其他来源获取数据并创建我的数据库集合。但是一些数据最后会有空格,在以后使用时会导致前端出现问题。
在使用spring mongoTemplate配置/代码插入和更新到String
之前,是否有通用的方法来修剪所有集合的所有MongoDB
字段。
我不想编写特定于每种类型的集合及其中每个字段的逻辑。另外,将这样的逻辑放在DB存储库级别是一个好习惯吗?
答案 0 :(得分:0)
尝试使用AbstractMongoEventListener
。例如,create创建自己的AbstractMongoEventListener
实现:
@Component
class SaveMongoEventListener extends AbstractMongoEventListener<Object> {
@Override
public void onBeforeConvert(BeforeConvertEvent<Object> event) {
Object source = event.getSource();
for (Field field : source.getClass().getFields()) {
if (field.getType().isAssignableFrom(String.class)) {
try {
String value = (String) field.get(source);
field.setAccessible(true);
field.set(value != null ? value.trim(): value, source);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
}
此实现将在将对象转换为MongoDB对象之前修剪对象中的所有字符串。听众应该适用于您的所有馆藏。不要忘记在Spring上下文中注册这个监听器。
要从MongoDB加载后修剪字符串,您应该在onAfterConvert
事件中执行相同操作。