Of the three options, should I be using one or two or all three combined to prevent null values?
@NotNull
@Column(name = "SOME_VALUE", nullable = false)
@Basic(optional = false)
private String someValue;
Note that I don't consider this a duplicate of an existing question. I see many questions 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.