Джава. JPA. @ Свойство класса Entity с @org.jetbrains.annotations.NotNull

Если схема БД запрещает определенным столбцам таблицы содержать значение NULL, существует ли способ пометить соответствующее свойство класса сущности с помощью @org.jetbrains.annotations.NotNull (или любой другой аннотации, совместимой с JSR-305), чтобы предоставить дополнительную информацию для вывода нулевого значения путем проверки IDEA или другой инструмент статического анализа)?

Когда я пытаюсь сделать это, отчеты о проверке, что свойство, помеченное @NotNull, должно быть инициализировано в инициализаторе класса. Я думаю, учитывая этот факт, невозможно достичь того, что я упомянул выше? В любом случае, провайдер JPA создаст объект класса сущности с неинициализированными свойствами и заполнит его данными БД только потом, так что с точки зрения инструмента статического анализа все свойства всегда обнуляются?

Заранее спасибо.

1 ответ

Я бы использовал @NotNull в основном в API, чтобы четко выразить намерения дизайна. В вашем случае ORM отвечает за создание и сборку сущностей, поэтому у вас нет возможности изменить его механизмы - просто дайте ему выполнить свою работу и использовать @NotNullгде они имеют смысл.

Другие вопросы по тегам