Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Насколько мне известно, нет собственного решения JPA для обеспечения значений по умолчанию. Вот мой обходной путь:
Решение без переноса базы данных
@Column(columnDefinition="tinyint(1) default 1")
private boolean include;
Java-ориентированное решение
private boolean include = true;
Шаблон Java плюс Plus Builder
@Column(nullable = false)
private Boolean include;
...
public static class Builder {
private Boolean include = true; // Here it comes your default value
public Builder include (Boolean include ) {
this.include = include ;
return this;
}
// Use the pattern builder whenever you need to persist a new entity.
public MyEntity build() {
MyEntity myEntity = new MyEntity ();
myEntity .setinclude (include );
return myEntity;
}
...
}
Это мой любимый и менее навязчивый. По сути, он делегирует задачу по определению значения по умолчанию для шаблона Builder в вашей сущности.
Вы всегда можете использовать аннотации @PreUpdate
или @PrePersist
для метода, в котором вы будете устанавливать, что следует сделать перед обновлением или перед сохранением в БД.
Или просто установите значение private boolean include = true;
Возможно, будет полезно людям, работающим с Microsoft SQL SERVER
@Column(columnDefinition="bit default 0")
private Boolean active;
Возможные значения: 0 или 1
Я обнаружил, что добавление в конструктор - хороший обходной путь для новых объектов по умолчанию для значения:
public EntityName(){
this.fieldToDefault = default;
}