我正在玩Play!框架CRUD模块,但我无法弄清楚:我的数据库表有一个created
字段,基本上是一行创建的时间。我不希望我的用户设置它,我想在后端执行,只需添加当前时间。我不知道怎么做。
我使用@Hidden
使该字段不可见但显然现在我无法创建新行,因为它的值根本没有设置。那我该怎么做呢?
我有另一个问题:我的表还有一个名为publish
的列,这是另一个时间戳。 CRUD表单中此字段的当前格式为yyyy-MM-dd。我想指定一个日期,也无法弄清楚如何...
有人可以帮忙吗?
答案 0 :(得分:6)
您可以使用javax.persistence.PrePersist批注来设置创建日期。将此方法放在您的模型中:
@PrePersist
public void prePersist() {
created = new Date();
}
答案 1 :(得分:0)
您可以在CRUD模板中使用custom field rendering来显示格式化的值或使用您想要的任何控件(即:日期的jquery日期选择器)。
要隐藏值并指定默认值,首先通过删除字段从CRUD的编辑/空白表单中删除值。然后从实体覆盖_save()方法(注意初始_,你想要_save(),而不是save())并在调用super._save()之前在代码中设置你想要的值。像这样:
/* Return value may differ */
public void _save() {
current = new Date();
super._save();
}