Итак, я искал и нашел несколько ответов о том, как установить значение по умолчанию в JPA, например: здесь
Но ни один из ответов не работает для меня.
У меня есть следующий объект:
@Data
@Entity
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(unique = true)
private String name;
private Integer budget;
private String description;
private Boolean isArchived;
private LocalDate archivedDate;
@NotNull
@ManyToOne
private Customer customer;
}
Я хотел бы добавить новое поле date
типа LocalDate
и установить его значение по умолчанию LocalDate.now()
, чтобы каждый существующий проект внутритаблица получает LocalDate.now
в качестве значения для свойства date
.
Поэтому я попытался сделать это рекомендуемым способом:
@Column(name="date")
private LocalDate date = LocalDate.now();
Но это не работает, значенияустановить в базу данных значение null вместо значения по умолчанию, которое я пытался определить. Если я проверяю определение столбца внутри базы данных, то также не установлено значение по умолчанию. Если я добавлю новый столбец вручную с помощью SQL и установлю там значение по умолчанию, все будет работать как положено, я просто не смогу получить его с JPA.
Я также попытался поиграться с columnDefinition
, но не смог получить ничего, что могло бы вызвать беспокойство. а также.