Nan*_*ale 26 java hibernate java-ee
如果我们使用该怎么办
@Column(name="birth_date", nullable=false, length=19)
public Date getBirthDate() {
return this.birthDate;
}
Run Code Online (Sandbox Code Playgroud)
代替
@Temporal(TemporalType.TIMESTAMP)
@Column(name="birth_date", nullable=false, length=19)
public Date getBirthDate() {
return this.birthDate;
}
Run Code Online (Sandbox Code Playgroud)
如果我们使用没有@Temporal注释的日期列属性,是否有任何副作用?
Tom*_*icz 29
只有我设法找到的文件:
在普通Java API中,未定义时间的时间精度.处理时态数据时,您可能希望描述数据库中的预期精度.时态数据可以具有DATE,TIME或TIMESTAMP精度(即实际日期,仅时间或两者).使用@Temporal注释来微调它.
这可能表示未定义数据库中的实际日期表示,并确保最好直接指定它.
jja*_*man 22
我意识到这个问题已经得到了回答,但我们今天仍在努力解决这个问题,所以我想为未来遇到这个问题的人提供更多的见解.
如果不使用时态注释,则将Oracle 11g与版本11驱动程序一起使用,那么Oracle中的每个日期,时间和时间戳数据类型都将在运行时映射到代码中的时间戳.功能上这很好,但这导致我们严重的性能问题.这是因为我们将DATE类型作为复合主键的一部分.此列是索引的前导列以及我们用于分区的列.当驱动程序尝试在where子句中使用此列保留记录时,Oracle将执行DB中数据从DATE到TIMESTAMP的类型转换.这使得索引无用,性能也很糟糕.
更长的故事,添加这个注释始终是为了准备付出代价.
| 归档时间: |
|
| 查看次数: |
17705 次 |
| 最近记录: |