2011-12-06 28 views
1

我在MySQL上使用Spring Roo。我通過Roo生成的JSON方法提取日期,以瀏覽器形式更改該數據,並通過Roo生成的JSON方法將其保存回去。在保存json之前,spring roo不能識別日期格式

我出來的日期格式是yyyy-MM-dd,標準的MySQL日期格式。我在瀏覽器上使用日曆小部件,以確保我提交的日期格式相同。

不幸的是我的數據不會通過...FromJson()方法右轉,與錯誤而失敗:

Parsing date 2007-12-12 was not recognized as a date format 

我相信這問題是,它的未來作爲一個字符串,但JPA感覺就像它需要生成要更新的對象Date

我會很高興地展示我的代碼,但沒有Roo沒有爲我構建的代碼。

在我看來,它指的是它被稱爲「被識別爲日期格式」的東西。有什麼地方可以改變它知道的日期格式嗎?

編輯:以@ nowaq的幫助下,這裏是最終的答案:

public static Lease fromJsonToLease(String json) { 
    return new JSONDeserializer<Lease>() 
      .use(null, Lease.class) 
      .use(Date.class, new DateFormatter("yyyy-MM-dd")) 
      .deserialize(json); 
} 

這樣JSONDeserializer知道它在處理什麼課,並建立了該類別的所有日期的格式。邪惡!

回答

0

您的問題與此問題非常相關:Spring-roo REST JSON controllers mangle date fields請仔細閱讀並確保您的JSON解串器使用的是正確的DateTrasformer(s)。例如。

new JSONDeserializer() 
     .use(Date.class, new DateTransformer("yyyy-MM-dd")) 
     .deserialize(people); 
+0

原來,我需要兩個'.use'調用,一個用於定義我正在使用的類,另一個用於爲該類中的日期配置datetransformer。謝謝! –

+0

@DanRay我正在通過添加新的DateFormatter(「yyyy-MM-dd」)來解決您的問題,但它看起來像DateFormater不起作用?我需要將它轉換爲ObjectFactory,但不能轉換爲此類型。 – Rami