Null
Ebeanのプロパティはアンロードされていると見なされるため、nullにすべきではない偶発的なnullプロパティを防ぐために、それらは除外されます。
Date
このため、Ebean (および他のフィールド)をEbeanに戻すのnull
は...難しいです:)。前回同じことをしなければならなかったとき(元に戻すDate
)、2番目のクエリを使用して... Date
(後 event.update(Object o)
)をnullにしました:
public static Result updateEvent(){
Form<Event> eventForm = form(Event.class).bindFromRequest();
// do some validation if required...
Event event = eventForm.get();
event.update(event.id);
if (eventForm.get().date == null){
Ebean
.createUpdate(Event.class, "UPDATE event SET date=null where id=:id")
.setParameter("id", page.id).execute();
}
}
一方、比較を使用している場合は、イベントをフィルタリングするために(常にXより新しいものを選択する)、日付を非常に「古い」値に設定するだけで、これもうまくいくはずです。この場合、オブジェクトを1回だけ更新します。
private static final Date VERY_OLD_DATE = new GregorianCalendar(1, 0, 1).getTime();
public static Result updateEvent(){
Form<Event> eventForm = form(Event.class).bindFromRequest();
Event event = eventForm.get();
if (eventForm.get().date == null){
event.date = VERY_OLD_DATE;
}
event.update(event.id);
}
この場合、HTMLフォームでは、フォームのフィールドの値をクリアする必要があります(または、のように毎回日付を送信するだけです0001-01-01
)が、JavaScriptを使用しても簡単に実行できます。