Dla typu wyliczenia Java, uczę się, że istnieją dwa rozwiązania dla MongoDB: serialization i using Jackson’s ObjectMapper. Czy MongoRepository może współpracować z typem danych wyliczeniowych z jednym z tych podejść lub muszę napisać dostosowane repozytorium?Czy dane Spring MongoDB obsługują wyliczenia?
Odpowiedz
Tak, dane wiosenne MongoDB obsługuje przeliczenia. Po prostu użyj ich w swoim modelu domeny.
Dane wiosenne Mongodb może serializować wyliczenie na ciąg znaków przy użyciu nazwy wyliczenia jako wartości. Załóżmy, że wykorzystuje drugie podejście z artykułu http://www.vineetmanohar.com/2010/01/3-ways-to-serialize-java-enums/. IMHO to nie może być potraktowane poważnie, ponieważ jedynym poprawnym sposobem zapisywania wyliczeń w bazie danych jest podejście nr 3 z tego samego artykułu, powiem to: "To podejście polega na przypisaniu wyraźnej wartości zdefiniowanej przez użytkownika do każdej stałej wyliczeniowej. i zdefiniowanie metod toValue() i fromValue() w wyliczeniu, aby dokonać serializacji i deserializacji. ". Tak więc Spring Data Mongodb nie obsługuje wyliczeń.
Dzięki Oliver. Po tym, jak napisałem moje pytanie, wczoraj wieczorem napisałem test jednostkowy i wszystkie testy zostały zaliczone. Powinienem zrobić więcej pracy zanim cokolwiek napisze. Teraz muszę dowiedzieć się, jak utworzyć dane enum Java z kodu JavaScript. To jest inna historia. – vic
Czy zakłada się, że wartości wyliczeniowe są łańcuchami, a pole mongodb jest łańcuchem znaków i czy jest dopasowywany wielkość liter? – Adam