簡體   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