如何动态设置MongoDB文档字段名称(不使用@Field
)?
@Document
public class Account {
private String username;
}
例如,字段名称应大写。结果:
{"USERNAME": "hello"}
我希望这个动态转换器可以处理任何文档,因此不需要使用泛型的解决方案。
答案 0 :(得分:0)
这有点奇怪的要求。您可以使用Mongo Listener生命周期事件docs。
@Component
public class MongoListener extends AbstractMongoEventListener<Account> {
@Override
public void onBeforeSave(BeforeSaveEvent<Account> event) {
DBObject dbObject = event.getDBObject();
String username = (String) dbObject.get("username");// get the value
dbObject.put("USERNAME", username);
dbObject.removeField("username");
// You need to go through each and every field recursively in
// dbObject and then remove the field and then add the Field you
// want(with modification)
}
}
这有点笨拙,但我相信没有干净的方法可以做到这一点。