繁体   English   中英

休眠-使mysql中的列类型只有日期而不是datetime

[英]hibernate - making type of column in mysql only date and not datetime

我使用DATE类型的字段将日期存储在mysql数据库中:

@Temporal(TemporalType.DATE)
@Column(name="RECIEVING_DATE")
private Date recieving_date;

// getters and setters

但是当hibernate保存它时,date以datetime格式存储,即它不只存储2015-02-23而是2015-02-23 00:00:00。

我用于插入日期的代码

String recieving_date = request.getParameter("recieving_date");
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    java.sql.Date ds = null;
    try {
        Date date = df.parse(recieving_date);
        ds=new java.sql.Date(date.getTime());
    } catch (ParseException e1) {
        System.out.println("Exception occured in parsing date : "+e1);
    }
    doc_mvmnt.setRecieving_date(ds); 

现在,我可以自己在数据库中运行alter table query来更改类型,但这每次都会很痛苦。 我怎么能告诉休眠保持我想要的类型。 而且,如果可能的话,是否可以使用休眠定义varchar和整数的大小。 请帮忙

因为我看到你逝去的只是date part的日期时间到recieving_date和肯定的类型recieving_datejava.sql.Date (如你传递一个类型,它的日期),所以我觉得这些注解之一应该工作@Type(type="date")@Temporal(TemporalType.DATE) ,由于第二个方法不起作用,请尝试另一个方法并给出反馈:

@Column(name="RECIEVING_DATE")
@Type(type="date")
private Date recieving_date;

// getters and setters

如果这样做不能解决问题,请尝试修改自定义格式的getter和setter方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM