我想在实体对象上添加一个Date / DateTime / Timestamp字段,该字段将在创建/持久化实体并将其设置为“现在”时自动创建,永远不再更新。
其他用例包括的字段始终会更新为包含实体的最后修改日期。
我以前是在mysql模式中达到这种要求的。
在Play中做到这一点的最佳方法是什么!/ JPA?
您可以使用一个代码片段来实现所需的功能。看一看:
// Timestampable.java
package models;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Version;
import play.db.ebean.Model;
@MappedSuperclass
public class Timestampable extends Model {
@Id
@GeneratedValue
public Long id;
@Column(name = "created_at")
public Date createdAt;
@Column(name = "updated_at")
public Date updatedAt;
@Version
public int version;
@Override
public void save() {
createdAt();
super.save();
}
@Override
public void update() {
updatedAt();
super.update();
}
@PrePersist
void createdAt() {
this.createdAt = this.updatedAt = new Date();
}
@PreUpdate
void updatedAt() {
this.updatedAt = new Date();
}
}
问题内容: 我的实体类: 我想在创建或修改对象时将CREATED和MODIFIED字段自动互补。CREATED和MODIFIED字段应为TIMESTAMP类型。 我该如何实现? 问题答案: 您只要在创建实例时就创建一个,然后在实体更新时就更新该字段: 不要为这些方法中的任何一种提供设置器,仅提供获取器。
问题内容: 如何创建日期为23/09/2007的时间戳记? 问题答案: 通过,我相信你的意思。您会注意到,该类具有一个接受参数的构造函数。您可以使用以下类进行解析:
问题内容: 如何在到期时间戳后自动执行MySQL更新或插入? 因此,可以说时间戳是,我希望在经过该日期和时间后自动更新MySQL DB,因此今天之后。 我想更新我的商品,但是我的网站没有打开浏览器,所以我想我需要某种服务器触发器吗?我怎么做?非常感谢 我有以下查询每1秒执行一次,它不起作用: 问题答案: 使用可以用于 MySQL事件(恕我直言最好的候选人) cron作业或Windows Task
问题内容: 在模型中,我有一个这样的字段:mydate = models.DateField() 现在,一个javascript图形函数需要unix时间戳,例如“ 1196550000000”,如何返回mydate输入的unix时间戳。 问题答案: 我知道不久前接受了另一个答案,但是这个问题在Google的搜索结果中显得很高,因此,我将添加另一个答案。 如果你在模板级别工作,则可以在过滤器中使用参
问题内容: 我基本上是想将Unix时间戳(time()函数)转换为与过去和将来的日期都兼容的相对日期/时间。因此输出可能是: 2个星期前 1小时60分钟前 15分钟54秒前 10分钟15秒后 首先,我尝试编写此代码,但是做了一个无法维护的巨大功能,然后我在互联网上搜索了几个小时,但我所能找到的只是脚本仅产生一部分时间(例如:“ 1小时前”纪要)。 您是否已经有执行此操作的脚本? 问题答案: 此功能
我们有带有日期字段(类型date)的表,将时间戳插入日期字段在某些oracle环境中工作(我们有多种开发环境),但在某些环境中失败。