Spring Boot和休眠。日期自动创建

时间:2019-03-11 12:43:45

标签: java spring hibernate spring-boot

我使用Spring Boot注释@Entity自动创建数据库字段。 所以,我已经尝试过了

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

但是Spring Boot在MySQL中将日期类型设置为DATETIME,因此将时间(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;

}

但是此字段的每个字段都可以为空,因此我应该在每个字段上添加注释@Column(nullable = false)使其不为null吗?看起来很蠢。

@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;

}

2 个答案:

答案 0 :(得分:2)

最好使用Java8中的Date来代替LocalDate。这样,时间数据就不会存储在数据库中。

对于@Column(nullable=false),这可能会有所帮助: Confusion: @NotNull vs @Column(nullable = false)

答案 1 :(得分:0)

我建议使用模式参数代替iso参数:@DateTimeFormat(pattern = "dd/MM/yyyy")