title: @Basic(optional = false) vs @Column(nullable = false) vs @NotNull
body: <p>Of the three options, should I be using one or two or all three combined to prevent null values?</p>
  
  <pre><code>@NotNull
  @Column(name = "SOME_VALUE", nullable = false)
  @Basic(optional = false)
  private String someValue;
  </code></pre>
  
  <p><strong>Note that I don't consider this a duplicate of an existing question.</strong> I see <a href="https://stackoverflow.com/questions/2899073/basicoptional-false-vs-columnnullable-false-in-jpa">many</a> <a href="https://stackoverflow.com/questions/7439504/confusion-notnull-vs-columnnullable-false">questions</a> that ask about a subset of these three options but have yet to find one that asks about which of the three is appropriate to use in a modern JPA/Hibernate stack.</p>