Не могу установить значение по умолчанию столбца в JPA - PullRequest
0 голосов
/ 08 ноября 2019

Итак, я искал и нашел несколько ответов о том, как установить значение по умолчанию в 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, но не смог получить ничего, что могло бы вызвать беспокойство. а также.

1 Ответ

0 голосов
/ 08 ноября 2019

вы можете попробовать что-то вроде ниже в вашей сущности

@Entity
public class MyJPAEntity {



@CreationTimestamp
private LocalDateTime createDateTime;

@UpdateTimestamp
private LocalDateTime updateDateTime;

}

вы также можете попробовать

@Column(nullable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private LocalDateTime createDate;
...