Spring Data MongoDB-Repository mit benutzerdefinierten Namen für die Sammlung ein

Bin ich mit Spring-Data für MongoDB und ich muss in der Lage sein zu konfigurieren Sammlung zur Laufzeit.

Mein repository ist wie folgt definiert:

@Repository
public interface EventDataRepository extends MongoRepository<EventData, String> {
}

Habe ich versucht, dieses dummes Beispiel:

@Document(collection = "${mongo.event.collection}")
public class EventData implements Serializable {

aber mongo.event.Sammlung nicht auflösen, um einen Namen wie mit einem @Value-annotation.

Ein bisschen mehr Debuggen und zu suchen, und ich habe versucht, die folgenden:
@Document(collection = "#{${mongo.event.Sammlung}}")

Dies ergab eine Ausnahme:

Caused by: org.springframework.expression.spel.SpelParseException: EL1041E:(pos 1): After parsing a valid expression, there is still more data in the expression: 'lcurly({)'
    at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:129)
    at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:60)
    at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:32)
    at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpressions(TemplateAwareExpressionParser.java:154)
    at org.springframework.expression.common.TemplateAwareExpressionParser.parseTemplate(TemplateAwareExpressionParser.java:85)

Vielleicht habe ich einfach nicht wissen, wie Sie zu Recht verwenden SPel Zugriff auf die Werte vom Frühjahr Eigentum Configurer.

Beim Durchlaufen des Codes sehe ich, dass es einen Weg gibt, um anzugeben, Sammlung namens oder sogar Ausdrücke, aber ich bin mir nicht sicher, dass die annotation sollte für diesen Zweck verwendet werden oder wie es zu tun.

Dank.
-AP_

  • Vielleicht ist das dein problem? jira.Frühling.io/browse/DATAMONGO-1043 ... welche version von spring-data-mongodb verwenden Sie?
  • Es könnte sein (ich bin mit 1.7.0-RELEASE), aber das Problem, das Sie erwähnt befasst sich mit Ausdrücke in Abfragen zwischen mehrere Aufrufe. Aber du hast Ahnung, mir hat es ein richtigen SPEL-Ausdruck, also änderte ich es. Siehe aktualisierte Frage.
Schreibe einen Kommentar