/ / Wie man FieldNamingStrategy in spring-data-mongo anpasst - spring, mongodb, spring-boot

Wie man FieldNamingStrategy im Frühling-Daten-Mongo entwirft - Frühling, Mongodb, Spring-Boot

Kann die Funktion dieser Schnittstelle im Spring-Data-Mongo noch erweitert werden?

Ich möchte, dass CamelCaseToUnderline in mongodb gespeichert und UnderlineToCamelCase abgefragt wird.

Ich sehe den Teil-Quellcode, er hat eine endgültige FieldNamingStrategy.wenn ich ihn costomisieren möchte, muss er vor der Instanziierung wie?

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!");
}
}
...
}

Antworten:

0 für die Antwort № 1

Hallo das ist aus dem Spring Boot Anhang

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

Sie haben die folgenden Strategien aus der Box

CamelCaseSplittingFieldNamingStrategy
CamelCaseAbbreviatingFieldNamingStrategy
SnakeCaseFieldNamingStrategy

Wenn diese nicht Ihren Bedürfnissen entsprechen, können Sie sie gerne erweitern