Für Java-Enummentypen erfahre ich, dass es zwei Lösungen für MongoDB gibt: Serialisierung und mit Jackson's ObjectMapper. Kann das MongoRepository mit einem dieser Datentypen mit einem Enumendatentyp arbeiten, oder muss ich ein benutzerdefiniertes Repository schreiben?
Antworten:
7 für die Antwort № 1Ja, Spring Data MongoDB unterstützt Enumerationen. Verwenden Sie sie einfach in Ihrem Domain-Modell.
2 für die Antwort № 2
Spring Data Mongodb kann das Enum in einen String serialisieren, indem es den Namen von enum als Wert verwendet. Angenommen, es verwendet den zweiten Ansatz des Artikels http://www.vineetmanohar.com/2010/01/3-ways-to-serialize-java-enums/. IMHO kann dies nicht ernst genommen werden, weil dieDer richtige Weg, um Enumerationen in der Datenbank zu speichern, ist der Ansatz Nr. 3 aus demselben Artikel. Lassen Sie mich Folgendes anführen: "Dieser Ansatz erfordert, jeder Enumenkonstante einen expliziten benutzerdefinierten Wert zuzuweisen und eine toValue () - und fromValue () - Methode zu definieren auf der Aufzählung, um die Serialisierung und Deserialisierung durchzuführen. " Spring Data Mongodb unterstützt daher keine Aufzählungen.