Ответ 1
Улучшенные сообщения об ошибках и обработка ошибок, особенно если вы также добавили JSR303 @NotNull аннотация.
Если вы создадите столбец как NOT NULL
, но не сообщите JPA, что он не является нулевым, JPA будет считать, что нулевые значения в порядке. Когда вы пытаетесь сохранить объект с нулями, он перейдет к отправке в БД, и вы получите ошибку уровня DB. Это увеличивает лог-спам в базе данных, и из ошибки, которую столбец (-ов) столкнулся с проблемой, гораздо труднее определить, а не отображать их обратно в имена JPA.
Если вы аннотируете их как не равные нулю, JPA выдаст исключение перед сохранением, избегая спама в журнале БД и обычно давая вам лучшую ошибку. В частности, если ваш поставщик JPA поддерживает JSR303 и либо переводит nullable=false
в @NotNull
внутренне, либо вы добавили @NotNull
тоже, он даст вам структуру данных, которую вы можете проверить, чтобы точно определить, какие поля были для объектов отклоняется по каким причинам, а также настраиваемые шаблонные сообщения об ошибках.
Вот почему вы должны сообщить JPA о NOT NULL
. Это, и это проще для других, работающих над вашим кодом, чтобы понять, не имея также необходимости читать схему БД.