title: Immutable Lombok annotated class with Jackson
body: <p>What is the preferred way to create class that is</p>
  
  <ul>
  <li>Immutable</li>
  <li>Can be serialized/deserialized with Jackson</li>
  <li>Human-readable and with low level of boilerplate</li>
  </ul>
  
  <p>Preferably, I would have liked something like this to work:</p>
  
  <pre><code>@Data(onConstructor = @__(@JsonCreator))
  </code></pre>
  
  <p>and then have all fields to be <code>private final</code>. However, this does not even compile (and I'm not sure why). Using </p>
  
  <pre><code>@AllArgsConstructor(onConstructor = @__(@JsonCreator))
  </code></pre>
  
  <p>will compile but only yields </p>
  
  <pre><code>InvalidDefinitionException: No serializer found for class
  </code></pre>