簡體   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