title: Jackson @JsonValue annotation selectively override or disable
body: <p>I have an enum with the following attributes:</p>
  
  <pre><code>private Integer id;
  private String name;
  private String description;
  </code></pre>
  
  <p>This enum has a function with Jackson's @JsonValue annotation:</p>
  
  <pre><code>@JsonValue
  public String toValue() {
      return Stream.of(values())
              .filter(eventType -&gt; eventType == this)
              .findAny()
              .map(EventType::toString)
              .orElseThrow(() -&gt; new IllegalArgumentException("Unable to convert EventType to value:" + this));
  }
  </code></pre>
  
  <p>This performs as desired, serializing the enum values to just the value returned by toString, which is the name of the enum.</p>
  
  <p>I want to be able to disable the @JsonValue annotation and just use Jackson's otherwise default JSON serialization behavior attached to this class: <code>@JsonFormat(shape = JsonFormat.Shape.OBJECT)</code> in certain cases where the object representing the entire enum must be fetched, instead of just the name.</p>
  
  <p>Jackson does not appear to have this ability built in (either that or I do not understand it well enough). I cannot create a wrapper class that extends this class, as Java does not allow that with enums.</p>
  
  <p>Any suggestions?</p>