Java hibernate-在mysql中只生成date而不是datetime列的类型

Java hibernate-在mysql中只生成date而不是datetime列的类型,java,mysql,hibernate,date,datetime,Java,Mysql,Hibernate,Date,Datetime,我使用date类型的字段在mysql数据库中存储日期: @Temporal(TemporalType.DATE) @Column(name="RECIEVING_DATE") private Date recieving_date; // getters and setters 但当hibernate保存它时,日期是以datetime格式保存的,即它不仅存储2015-02-23,还存储2015-02-23 00:00:00 我用于插入日期的代码 String recieving_date =

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

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

// getters and setters
但当hibernate保存它时,日期是以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); 

现在,我可以自己在数据库中运行ALTERTABLE查询来更改类型,但每次都会很痛苦。我如何告诉hibernate保持我想要的类型。此外,如果这是可能的,是否可以使用hibernate定义varchar和整数的大小。请提供帮助,因为我看到您只将日期时间的
日期部分传递给
接收日期
,并且
接收日期的类型肯定是
java.sql.date
(当您将该类型的日期传递给它时),所以我认为其中一个注释应该可以工作
@type(type=“date”)
@Temporal(TemporalType.DATE)
第二个不起作用,请尝试另一个并给出反馈:

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

// getters and setters

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

如何为
receiving_date
设置日期值,请显示与您为其设置的日期相关的代码我编辑了此帖子!!请查看您是否可以帮助可能重复的no,我正在尝试使用hibernate此类型注释s到哪个包???
org.hibernate.annotations.Type
非常欢迎您,很高兴看到问题已经解决。我可以使用此注释来指定varchar或整数的长度吗?是否有任何注释可以这样做?因为默认情况下,它提供255个字符,如果我不想保持该大小,可以将其增加或减少到100 ch对于字符串的长度,您可以使用
@Column
length
属性(对于列的长度)注释。您还可以使用
@Size
注释的
max
属性(用于强制值的长度)