Hibernate 时间格式问题

java 代码:
import java.util.Date;

managerBo.setCzsj(new Date());

String hql = " update ManagerBo m set m.status = :status , m.czsj = :czsj where m.lsh =:lsh ";
Query query =getSession().createQuery(hql);
query.setString("status", managerBo.getStatus());
query.setDate("czsj", managerBo.getCzsj());
query.setString("lsh", managerBo.getLsh());
query.executeUpdate();

我用java new Date()存入Bo 按理说格式应该是默认的啊 yyyy-MM-dd hh:mm:ss
但是存入到数据库中的时间 是 yyyy-MM-dd格式啊 我想要精确到时分秒的。

2个回答

如果你的ManagerBo对象采用的是注解形式,需要在
@Column(name = "czsj")

@Temporal(TemporalType.TIMESTAMP)

private Date getCzsj(){

}
加上@Temporal注解 类型为TemporalType.TIMESTAMP !!!!!
这里的Date类型仅为java.util.Date!!!!!

iteye_19207
iteye_19207 1.你要注意实体对象字段和数据库表字段映射类型的对应! 也就是说TemporalType 的类型! 2.query.setDate()默认只保存年月日! 需要用query.setTimestamp()!
接近 6 年之前 回复
wm3445
wm3445 或者你大概的跟我说说。
接近 6 年之前 回复
wm3445
wm3445 就是这个好使了 , 有参考的文章让我详细了解下吗
接近 6 年之前 回复
iteye_19207
iteye_19207 把query.setDate("czsj", managerBo.getCzsj()); 改成query.setTimeStamp()! 看看有这个方法么
接近 6 年之前 回复
wm3445
wm3445 oracle
接近 6 年之前 回复
iteye_19207
iteye_19207 用的什么数据库,oralce,mysql?
接近 6 年之前 回复
wm3445
wm3445 存进 数据库的数据还是 2013/10/18 这种格式啊
接近 6 年之前 回复
wm3445
wm3445 不好使啊,我就是写注解的
接近 6 年之前 回复
iteye_19207
iteye_19207 行,能出来就行了,如果要是用xml的形式,你查下 也好改!
接近 6 年之前 回复
iteye_19207
iteye_19207 导入这个类了吗?
接近 6 年之前 回复
wm3445
wm3445 知道了 没导入包
接近 6 年之前 回复
wm3445
wm3445 加不上去啊 编译器 会报错啊 Multiple markers at this line - The attribute value is undefined for the annotation type Temporal - TemporalType cannot be resolved to a variable - Temporal cannot be resolved to a type 没有 TemporalType 这个类啊
接近 6 年之前 回复

pojo映射的时候

时间不要用 java.sql.Date 用 java.sql.TIMESTAMP 即可。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!