Не могли бы вы объяснить, что означает нижеприведенная декларация
@Column(nullable = false )
@XmlElement(required = true, nillable = true )
что означает разницу между nullable и nillable ?
Не могли бы вы объяснить, что означает нижеприведенная декларация
@Column(nullable = false )
@XmlElement(required = true, nillable = true )
что означает разницу между nullable и nillable ?
XmlElement
не является частью JPA, а исходит из JAXB. Таким образом, две аннотации и их элементы nullable
и nillable
не связаны между собой. Сказав это, stackoverflow.com/questions/5913200/why -is-it-call-nillable объясняет, почему nillable
используется в контексте XML (с которым имеет дело JAXB). 25.09.2018 Аннотация @Column
исходит из JPA (Java Persistence API) и указывает, как поле сопоставляется со столбцом базы данных. Используя атрибут nullable
аннотации, вы указываете, должны ли быть разрешены значения NULL
в базе данных для этого поля.
Аннотация @XmlElement
исходит из JAXB (Java API для привязки XML) и указывает, как следует обрабатывать поле при преобразовании этого объекта в XML и обратно. Если вы установите для атрибута nillable
значение true
, это означает, что в XML разрешено, чтобы соответствующий элемент имел атрибут xsi:nil="true"
.
Обратите внимание, что в XML есть тонкие различия между отсутствующим элементом XML, присутствующим, но с пустым значением, и наличием атрибута xsi:nil
.
Уместно ли использовать аннотацию @XmlElement
с атрибутом nillable = true
, зависит от требований вашего приложения.
nullable = false
в аннотации@Column
, то очевидно, что значенияNULL
в базе данных не допускаются. 25.09.2018