我是hibernate的新手
我用hibernate和struts2写了一个小应用程序
我的问题是
当我更新日期时间时,我的时间将是00:00:00或12:00:00,这与我选择的时间不一致04:50:10或18:20:11
我尝试了很多次,但直到不起作用
在我的表单中,我有一个字段是字符串,然后我将其转换为日期,然后用hibernate更新它
我的转换代码
public Date convertStringToDate(String str) {
Date date = null;
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
try {
date = formatter.parse(str);
} catch (ParseException ex) {
Logger.getLogger(NewsAdminAction.class.getName()).log(Level.SEVERE, null, ex);
}
return date;
}
public String convertDateToString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
String str = formatter.format(date);
return str;
}
我的更新代码hibernate
//create session begin transaction
String sqlNoThumb = "UPDATE News set title = :title, info = :info, publicdate = :publicdate, active = :active, titleviet = :titleviet where idnews = :idnews";
Query query = session.createQuery(sqlNoThumb);
query.setString("title", news.getTitle());
query.setString("info", news.getInfo());
query.setDate("publicdate", news.getPublicdate());
query.setInteger("active", news.getActive());
query.setString("titleviet", news.getTitleviet());
query.setInteger("idnews", news.getIdnews());
result = query.executeUpdate();
答案 0 :(得分:3)
您需要使用java.sql.Timestamp
,而不是java.sql.Date
为了符合SQL DATE的定义,java.sql.Date实例包含的毫秒值必须通过将小时,分钟,秒和毫秒设置为零来“标准化” < / p>