Играть! Фреймворковый модуль CRUD: добавление значений по умолчанию и изменение формата даты? - PullRequest
1 голос
/ 17 мая 2011

Я использую Play! модуль CRUD Frameworks, но я не могу что-то выяснить: в моей таблице базы данных есть поле created, которое в основном соответствует времени создания строки. Я не хочу, чтобы мой пользователь устанавливал это, я хочу сделать это в бэкэнде, просто добавив текущее время. Я не могу понять, как это сделать.

Я сделал поле невидимым, используя @Hidden, но теперь я не могу создавать новые строки, потому что его значение просто не задано. Итак, где мне это сделать?

И еще один вопрос, который у меня есть: в моей таблице также есть столбец с именем publish, который является другой отметкой времени. Текущий формат этого поля в форме CRUD - гггг-ММ-дд. Я хотел бы также указать дату и не могу понять, как ..

Может кто-нибудь помочь?

Ответы [ 2 ]

6 голосов
/ 21 мая 2011

Вы можете использовать аннотацию javax.persistence.PrePersist, чтобы установить дату создания.Поместите этот метод в вашу модель:

@PrePersist
public void prePersist() {
    created = new Date();
}
0 голосов
/ 17 мая 2011

вы можете использовать отображение настраиваемого поля в шаблонах CRUD для отображения форматированных значений или с использованием любого необходимого элемента управления (например, средство выбора даты jquery для дат).

Чтобы скрыть значение и назначить значение по умолчанию, прежде всего удалите значение из форм редактирования / пустых CRUD, удалив поле. Затем переопределите метод _save () объекта (будьте осторожны с начальным _, вам нужно _save (), а не save ()) и установите в коде нужные значения перед вызовом super._save (). Как это:

/* Return value may differ */
public void _save() {
   current = new Date();
   super._save();
}
...