繁体   English   中英

如何在spring-data-mongo中自定义FieldNamingStrategy

[英]How to custmize FieldNamingStrategy in spring-data-mongo

在spring-data-mongo中,这个接口的功能还可以扩展吗?

我想要的是在mongodb中保存CamelCaseToUnderline并查询UnderlineToCamelCase。

我看到了部分源代码,它具有最终的FieldNamingStrategy。如果我想对它进行通用化,它必须在实例化之前,怎么做?

public class BasicMongoPersistentProperty extends AnnotationBasedPersistentProperty<MongoPersistentProperty> implements MongoPersistentProperty {
    ....
    private final FieldNamingStrategy fieldNamingStrategy;

    public BasicMongoPersistentProperty(Field field, PropertyDescriptor propertyDescriptor, MongoPersistentEntity<?> owner, SimpleTypeHolder simpleTypeHolder, FieldNamingStrategy fieldNamingStrategy) {

      super(field, propertyDescriptor, owner, simpleTypeHolder);
      this.fieldNamingStrategy = fieldNamingStrategy == null ? PropertyNameFieldNamingStrategy.INSTANCE : fieldNamingStrategy;

      if (isIdProperty() && getFieldName() != ID_FIELD_NAME) {
        LOG.warn("Customizing field name for id property not allowed! Custom name will not be considered!");
      }
    }
   ...
}

嗨,这是从Spring Boot附录中获得的

# MONGODB (MongoProperties)
spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use

您可以立即使用以下策略

CamelCaseSplittingFieldNamingStrategy
CamelCaseAbbreviatingFieldNamingStrategy
SnakeCaseFieldNamingStrategy

如果这些都不满足您的需求,请随时扩展它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM