我使用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;
}
答案 0 :(得分:2)
最好使用Java8中的Date
来代替LocalDate
。这样,时间数据就不会存储在数据库中。
对于@Column(nullable=false)
,这可能会有所帮助:
Confusion: @NotNull vs @Column(nullable = false)
答案 1 :(得分:0)
我建议使用模式参数代替iso参数:@DateTimeFormat(pattern = "dd/MM/yyyy")