Mongodb 在spring boot mongo存储库操作中将未知枚举值强制转换为默认枚举
在使用mongo存储库时,在spring boot中将未知枚举强制转换为默认枚举时出现问题 这是枚举Mongodb 在spring boot mongo存储库操作中将未知枚举值强制转换为默认枚举,mongodb,spring-boot,Mongodb,Spring Boot,在使用mongo存储库时,在spring boot中将未知枚举强制转换为默认枚举时出现问题 这是枚举 public enum EventType implements Serializable { WORKDONE("WORKDONE"), ODRCOM("ODRCOM"), EXECUTED("EXECUTED"), REBOOK("REBOOK"), MANUAL("MANUAL&q
public enum EventType implements Serializable
{
WORKDONE("WORKDONE"),
ODRCOM("ODRCOM"),
EXECUTED("EXECUTED"),
REBOOK("REBOOK"),
MANUAL("MANUAL"),
UNKNOWN("UNKNOWN");
private String value;
EventType(final String type) {
this.value = type;
}
@Override
public String toString() {
return value;
}
}
这是我的模型课
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Event {
//other properties
@JsonProperty("eventType")
private EventType eventType;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("eventType")
public EventType getEventType() {
return eventType;
}
@JsonProperty("eventType")
public void setEventType(String eventType) {
this.eventType = Optional.ofNullable(EventType.valueOf(eventType)).orElse(EventType.UNKNOWN);
}
//other getters and setters
}
请注意,REBOOK1不是有效的枚举。但是setter应该能够将任何其他内容转换为未知类型。
然而,它每次都会给出这个例外
没有枚举常量dk.nuday.ossieventprocessor.app.model.EventType.REBOOK1
我尝试过添加自定义转换器作为配置,但没有成功
非常感谢您的帮助JsonProperty不适用于Mongodb。通常有人说,您应该为自定义类型创建Mongodb转换器,但在枚举的情况下,它对我来说从来都不起作用。
public interface EventRepository extends MongoRepository<Event, String> {
}
{
...
"eventType" : "REBOOK1",
...
}