Каково различие между @ManyToOne (optional=false) по сравнению с @Column (nullable=false)

В JPA я смущен, когда использовать атрибут optional=false и аннотация @Column(nullable=false). Каково различие?

52
задан 1ac0 5 April 2016 в 04:06
поделиться

1 ответ

@Column (nullable = false) - инструкция для создания схемы. Столбец базы данных, созданный вне класса, будет помечен как не допускающий значения NULL в фактической базе данных.

optional = false - инструкция времени выполнения. Основная функциональная вещь, которую он выполняет, связана с отложенной загрузкой. Вы не можете лениво загружать сопоставленный объект, не являющийся коллекцией, если не забыли установить optional = false (потому что Hibernate не знает, должен ли там быть прокси-сервер или ноль, если вы не укажете, что нули невозможны, поэтому он может генерировать прокси.)

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

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