2016-04-14 5 views
0

Ich habe eine Legacy-Eigenschaft in einer MongoDB-Sammlung, die als boolescher Wert gespeichert ist, aber diese Eigenschaft hat sich weiterentwickelt und ist zu einem Objekt geworden.Morphia - Wie kann ich das Laden einer Eigenschaft ignorieren, wenn sie von einem bestimmten Typ ist?

Gibt es eine Möglichkeit in Morphia, diese Eigenschaften zu ignorieren, wenn sie boolean sind? Ich möchte sie nur abrufen, wenn sie von der neueren Version (Object) sind. Wenn sie boolesch sind, möchte ich sie einfach ignorieren.

Wenn ich versuche zu finden() ein Dokument mit der Eigenschaft als boolean, erhalte ich:

java.lang.ClassCastException: java.lang.Boolean kann nicht auf com.mongodb.DBObject gegossen werden ! bei org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject (EmbeddedMapper.java:162) ~ [Morphium-1.0.1.jar: na]

Irgendwelche Gedanken? Danke

Antwort

0

Sie können eine @PreLoad Annotation für eine Methode verwenden und dann dieses Feld aus der DBObject entfernen, wenn es eine Boolean ist. Dann sollte die nachfolgende Behandlung des DBObject richtig deserialisieren. Sie können ein Beispiel sehen here

+0

groß! funktionierte wie ein Charme ;-) – GCarbajosa

+0

gute Nachrichten. froh, dass ich helfen konnte. bevor ich sogar gefrühstückt habe! : D – evanchooly

Verwandte Themen