我应该使用String或int可空数值?



我正在尝试读取具有这些字段和值的csv文件:

// "reference"         "choice",    "startDate"
// "123",              "3",         "06.03.1987"
// "Set 1",            "1",         "11.06.1999"
// "Set 2",            "2",         "05.07.2002"
// "Set 3",            "",          "05.07.2002"

reference字段唯一,choice字段可能为空。在这个场景中,对于我的实体定义:

1。我应该使用Stringchoice字段,因为它可能是空的(空字符串)在csv文件?

2。我应该让reference字段PK,或者即使它是唯一的,我认为最好使用Longid字段,并为reference字段添加@Column(unique = true)。对吗?

3。对于startDate字段,我认为我应该使用LocalDate,而不是Date,因为它已被弃用。这是真的吗?

1。我应该使用字符串的选择字段,因为它可能是空(空字符串)在csv文件?

您可以将csv值解析为String,并在写入数据库之前使用Integer.parseInt()(因此您可以写入有效数字,或者在csv值不可解析时写入null)。

2。我是否应该使参考字段PK或即使它是唯一的,我认为最好使用长id字段并为参考字段添加@Column(unique = true)。对吗?

如何选择主键,唯一性是否有意义,如何处理唯一值的重复(新添加失败?添加相关行?更新现有行,覆盖现有值?)。你可以写一整篇文章来讨论这个问题。

3。对于startDate字段,我认为我应该使用LocalDate,而不是Date,因为它已被弃用。这是真的吗?

当然,java.time.LocalDate是个不错的选择。

有点迂腐,但是:java.util.Date()上的各种方法已经被弃用了,但Date本身并没有被弃用。一般来说,java.time包中有更好的选择(比如LocalDate)。

相关内容

  • 没有找到相关文章

最新更新