Java 弹簧靴;冬眠。日期自动创建

Java 弹簧靴;冬眠。日期自动创建,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我使用Spring Boot Annotation@Entity自动创建数据库字段。 所以,我试过这个 @Entity @Table @Data public class Application { @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) private Date date; } 但是SpringBoot在MySQL中使用了DATETIME的“date”类型,所以它是将time(00:00:00)添加到我的行中。 我怎样才能

我使用Spring Boot Annotation@Entity自动创建数据库字段。 所以,我试过这个

@Entity
@Table
@Data
public class Application {
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private Date date;
}
但是SpringBoot在MySQL中使用了DATETIME的“date”类型,所以它是将time(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)
,使其不为空吗?它看起来太傻了

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

}

属性在JPA中默认为空,但基元类型除外。对于
字符串
类型,无需添加
@列(nullable=true)

//default = nullable
@Column
private String prop;

在JPA中,除了基元类型之外,属性默认为空。对于
字符串
类型,无需添加
@列(nullable=true)

//default = nullable
@Column
private String prop;

我建议使用模式参数而不是iso参数:
@DateTimeFormat(pattern=“dd/MM/yyyy”)
我建议使用模式参数而不是iso参数:
@DateTimeFormat(pattern=“dd/MM/yyyy”)
而不是
Date
,最好使用Java8中的
LocalDate
。这样,数据库中不应存储任何时间数据

关于
@Column(nullable=false)
,这可能会有所帮助:
最好使用Java8中的
LocalDate
,而不是
Date
。这样,数据库中不应存储任何时间数据

关于
@Column(nullable=false)
,这可能会有所帮助:

为什么使用
Date
而不使用
LocalDate
?关于
@列(nullable=false)
,这可能会对您有所帮助。不,我可以使用
LocalDate
它会对我有帮助吗?@ClaudiuGuja谢谢,
LocalDate
工作正常!你能补充一个答案让我接受吗?你为什么使用
Date
而不是
LocalDate
?关于
@列(nullable=false)
,这可能会对您有所帮助。不,我可以使用
LocalDate
它会对我有帮助吗?@ClaudiuGuja谢谢,
LocalDate
工作正常!你能补充一个答案让我接受吗?不,它仍然创建DATETIME而不是DATENah,它仍然创建DATETIME而不是DATE