Джава. JPA. @ Свойство класса Entity с @org.jetbrains.annotations.NotNull
Если схема БД запрещает определенным столбцам таблицы содержать значение NULL, существует ли способ пометить соответствующее свойство класса сущности с помощью @org.jetbrains.annotations.NotNull (или любой другой аннотации, совместимой с JSR-305), чтобы предоставить дополнительную информацию для вывода нулевого значения путем проверки IDEA или другой инструмент статического анализа)?
Когда я пытаюсь сделать это, отчеты о проверке, что свойство, помеченное @NotNull, должно быть инициализировано в инициализаторе класса. Я думаю, учитывая этот факт, невозможно достичь того, что я упомянул выше? В любом случае, провайдер JPA создаст объект класса сущности с неинициализированными свойствами и заполнит его данными БД только потом, так что с точки зрения инструмента статического анализа все свойства всегда обнуляются?
Заранее спасибо.
1 ответ
Я бы использовал @NotNull
в основном в API, чтобы четко выразить намерения дизайна. В вашем случае ORM отвечает за создание и сборку сущностей, поэтому у вас нет возможности изменить его механизмы - просто дайте ему выполнить свою работу и использовать @NotNull
где они имеют смысл.