2014-03-31 40 views
0

我有這些模型玩框架2.2。 - ebean模型保存時間從請求

@Entity 
@Table(name = "recipe") 
public class Recipe extends Model { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "id") 
    public Long id; 

    @NotNull 
    @Constraints.Required 
    public String title; 

    @Column(name = "short_description") 
    public String shortDescription; 

    @Column(columnDefinition = "TEXT") 
    public String ingredients; 

    @Column(columnDefinition = "TEXT") 
    public String cooking; 

    @NotNull 
    @Constraints.Required 
    @Formats.DateTime(pattern="HH:mm:ss") 
    public Time time; 

現在我想保存數據從與restangular角正在添加JS。所有參數均在控制器中提供,但出現錯誤:

{"time":["Invalid value"]} 

所有數據都是請求中的字符串。我想這就是問題所在。但我不想讓我的自我投擲,因爲然後我失去了表演驗證... 你可以給我任何提示嗎?

非常感謝!

回答

0

不幸的是,Java和日期/時間不能很好地結合在一起。我會刪除@Formats註釋,只是傳入「unix時間」,因爲這是Time類所期望的。您可以通過實施momentjs庫在角度方面輕鬆完成此操作。如果你是在格式HH:mm:ss得到的日期,然後在你的角度控制器使用下面的代碼的時間來格式化爲UNIX時間:

var time = moment(str, "HH:mm:ss").format("X"); 

其中str是要格式化的時間字符串represtation。然後通過time作爲參數。

如果我完全誤解了這個問題,並且您正在從數據庫中檢索時間並且沒有將時間保存到數據庫,那麼只需翻轉上述方法即可。

var time = moment(str, "X").format("HH:mm:ss"); 

其中str是從數據庫中檢索的時間。