title: Confusion: @NotNull vs. @Column(nullable = false) with JPA and Hibernate
body: <ol>
  <li><p>When they appear on a field/getter of an <code>@Entity</code>, what is the difference between them? (I persist the Entity through <strong>Hibernate</strong>).</p></li>
  <li><p>What framework and/or specification each one of them belongs to?</p></li>
  <li><p><code>@NotNull</code> is located within <code>javax.validation.constraints</code>. In the <code>javax.validation.constraints.NotNull</code> javadoc it says</p>
  
  <blockquote>
    <p>The annotated element must not be null</p>
  </blockquote>
  
  <p>but it does not speak of the element's representation in the database, so why would I add the constraint <code>nullable=false</code> to the column?</p></li>
  </ol>