@Basic (дополнительный = ложь) по сравнению с @Column (nullable = ложь) в JPA

Между чем различие @Basic(optional = false) и @Column(nullable = false) в персистентности JPA?

94
задан nbro 24 April 2016 в 10:16
поделиться

1 ответ

Gordon Yorke (член архитектурного комитета EclipseLink, технический руководитель TopLink Core, член экспертной группы JPA 2. 0 Expert Group Member) написал хороший ответ на эту тему, поэтому вместо того, чтобы перефразировать его, я процитирую его ответ:

Разница между optional и nullable заключается в области видимости, в которой они оцениваются. Определение 'optional' говорит о свойствах и значениях полей и предполагает, что эта функция должна оцениваться в пределах времени выполнения. 'nullable' относится только к относится только к столбцам базы данных.

Если реализация решит реализовать optional, то эти свойства должны быть оценены в памяти провайдером персистентности и исключение должно быть вызвано до того, как SQL будет отправлен в базу данных, иначе при использовании 'updatable=false' 'optional' о нарушениях никогда бы не сообщалось.

91
ответ дан 24 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: