Spring Boot & Hibernate.Дата автоматического создания - PullRequest
0 голосов
/ 11 марта 2019

Я использую аннотацию Spring Boot @Entity для автоматического создания полей базы данных. Итак, я попробовал это

@Entity
@Table
@Data
public class Application {
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private Date date;
}

Но Spring Boot делает тип date из DATETIME в MySQL, так что в мою строку добавляется время (00:00:00). Как я могу это исправить?

И еще один вопрос. У меня есть User.class

@Entity
@Table
@Data
public class User implements UserDetails {

    private String username;
    private String password;
    private String first_name;
    private String last_name;

}

Но каждое это поле имеет значение NULL, поэтому я должен добавить аннотацию @Column(nullable = false) к каждому полю, чтобы оно не было нулевым? Это выглядит так глупо.

@Entity
@Table
@Data
public class User implements UserDetails {

    @Column(nullable = false)
    private String username;
    @Column(nullable = false)
    private String password;
    @Column(nullable = false)
    private String first_name;
    @Column(nullable = false)
    private String last_name;

}

Ответы [ 3 ]

2 голосов
/ 11 марта 2019

Вместо Date было бы лучше использовать LocalDate из Java8. Таким образом, данные о времени не должны храниться в базе данных.

А что касается @Column(nullable=false), это может помочь: Путаница: @NotNull против @Column (nullable = false)

0 голосов
/ 11 марта 2019

Я предлагаю использовать параметр шаблона вместо параметра iso: @DateTimeFormat(pattern = "dd/MM/yyyy")

0 голосов
/ 11 марта 2019

Свойства по умолчанию обнуляются в JPA, за исключением примитивных типов. Нет необходимости добавлять @Column(nullable = true) для String типа

//default = nullable
@Column
private String prop;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...