java - TemporalType.TIMESTAMP whit java.util.Date 不起作用( hibernate 版本 3.2.7.ga)

标签 java mysql sql hibernate date

我在类里面有这个

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "data_creazione")
private Date dataCreazione;

如果我将 null 放在 data_creazione 上的数据库上,该对象将被保存 我这样做:

Date data=new Date();
newAccordo.setDataCreazione(data);

还有:

newAccordo.setDataCreazione(new Timestamp(data.getTime()));

但是对象没有被保存。我寻找查询中的内容,并且是“2014-07-11 16:40:04”,这是一个正常的日期时间。如果我手动放置它,它就可以工作。 在数据库中,我尝试放置日期时间和时间戳,但无论如何不要在数据库中写入。

如果我输入:

@Temporal(TemporalType.TIME)

他在 db 中写了日期和时间,但是当我在 jsp 中标记它之后,我只看到正确的时间和从 util.date 开始的日期。所以我不能使用这个 escamotage。 我认为问题可能出在 hibernate 版本中。

你怎么看?

最佳答案

你需要这样做:

Date data=new Date();
newAccordo.setDataCreazione(new Timestamp(data.getTime());  // data --> date ??

因为列类型是Timestamp(yyyy-mm-dd HH:mm:ss.),而不是Date(yyyy-mm-dd)类型。确保导入

import java.sql.Timestamp;
import java.util.Date;

同时将 hibernate 设置为 <property name="hbm2ddl.auto">update</property> ,这将自动更新列数据类型。

关于java - TemporalType.TIMESTAMP whit java.util.Date 不起作用( hibernate 版本 3.2.7.ga),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701753/

相关文章:

java - 获取 Wicket 口中输入的值

MySQL 的 LIKE 运算符找不到完全匹配的电话号码

php - 在 mysql 中,如何选择字段的数字部分?

mysql - 将 select 和 dateadd 函数的结果集插入到同一个表中

c# - 与 Azure 同步时如何不违反此主键?

java - Java中的网络通信类型

java - 为什么我的文件总是被覆盖?

java - 在 JFrame 中没有看到矩形 Player 类

python - 使用python格式化MySQL数据

mysql - 如何在给定 ID 的匹配表中选择彼此匹配的用户