2016-05-04 7 views
1

Ich habe für das Speichern von Entitäten zum Mongo DB und meinen Code zur Zeit Spring Data benutze sieht wie folgt aus:speichern Mongo Einheit zu den verschiedenen Sammlungen

ich eine Repo-Klasse:

public interface LogRepo extends MongoRepository<Log, String> { 

} 

und ich habe eine Entity Log, die wie folgt aussieht:

@Document(
     collection = "logs" 
) 
public class Log { 

    @Id 
    private String id; 
    private String jsonMessage; 


    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getJsonMessage() { 
     return jsonMessage; 
    } 

    public void setJsonMessage(String jsonMessage) { 
     this.jsonMessage = jsonMessage; 
    } 
} 

und diese Arbeit gut für mich, aber dieser Ansatz funktioniert nur für den Fall, wenn ich Entitäten speichern möchten Log auf „Protokolle“ Sammlung. Es wäre jedoch sehr nett für mich, die Log-Entität je nach Kontext in verschiedenen Sammlungen speichern zu können. Ich meine, es wäre schön, Sammlungsnamen in der Laufzeit zu definieren. Ist es irgendwie möglich?

Danke, prost

+1

Ich denke, die Definition der Sammlung zur Laufzeit ist immer noch nicht verfügbar, ich hatte auch das gleiche Problem. Ich musste Custom Implementation for MongoRepository verwenden – user1211

+0

@ user3632894 Ich habe nach einer Möglichkeit gesucht, dies für ein paar Tage zu handhaben und nichts gefunden. Scheint wie benutzerdefinierte Implementierung ist die einzige Möglichkeit für einen Moment –

Antwort

1

Versuchen Vererbung zu verwenden und entsprechende Sammlungsnamen in einer solchen Art und Weise definieren. Kann Ihnen die Möglichkeit geben, in verschiedenen Sammlungen zu speichern, aber Sie werden immer noch nicht in der Lage sein, dynamisch Sammlungsnamen und resp. ihre Menge zur Laufzeit.

+0

Danke für die Antwort scheint die einzige Möglichkeit, Situation zu behandeln, ist eine benutzerdefinierte Implementierung zu schreiben –

Verwandte Themen