gpt4 book ai didi

mongodb - 如何在使用 MongoTemplate 插入 MongoDB 之前修剪字符串?

转载 作者:可可西里 更新时间:2023-11-01 10:47:08 24 4
gpt4 key购买 nike

基本上,我从另一个来源获取数据并创建我的数据库集合。但是有些数据最后有空格,后面用的时候前端会出问题。

在使用 spring mongoTemplate 配置/代码插入和更新到 MongoDB 之前,是否有一种通用的方法来修剪所有集合的所有 String 字段。

我不想为每种类型的集合及其中的每个字段编写特定的逻辑。此外,将此类逻辑放在数据库存储库级别是一种好做法吗?

最佳答案

尝试使用AbstractMongoEventListener .例如,创建您自己的 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 中执行相同的操作事件。

关于mongodb - 如何在使用 MongoTemplate 插入 MongoDB 之前修剪字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49378931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com