title: Lombok: generated constructor missing?
body: <p>For this code:</p>
  
  <pre><code>@Data
  @Entity
  @AllArgsConstructor
  public class Person {
  
      private @GeneratedValue @Id Long id;
      private final String firstname;
      private String middlename;
      private final String lastname;
  }
  </code></pre>
  
  <p>Lombok (v. 1.16.14) should generate two constructors.  First, due to the @Data:</p>
  
  <pre><code>public Person(String firstname, String lastname) { ... }
  </code></pre>
  
  <p>Due to the @AllArgsConstructor, there should also be:</p>
  
  <pre><code>public Person(Long id, String firstname, String middlename, String lastname);
  </code></pre>
  
  <p>However, the first (two parameter) constructor "disappears" when adding the <code>@AllArgsConstructor</code> annotation.  The javadoc for <code>@Data</code> states:</p>
  
  <pre><code>Equivalent to @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode.
  </code></pre>
  
  <p>So am I wrong thinking the two argument ctor should be there?  This has a very simple workaround because if the <code>@RequiredArgsConstructor</code> annotation is explicitly added:</p>
  
  <pre><code>@Data
  @Entity
  @AllArgsConstructor
  @RequiredArgsConstructor
  public class Person {
  
      private @GeneratedValue @Id Long id;
      private final String firstname;
      private String middlename;
      private final String lastname;
  }
  </code></pre>
  
  <p>both ctors are available.  However, this behavior makes little to no sense to me, so I was hoping someone might explain if this is a bug or a feature!</p>