我有一个基类:
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() {
if (this.id == null) {
createdAt();
} else {
updatedAt();
}
super.save();
}
@Override
public void update() {
updatedAt();
super.update();
}
@Override
public void update(Object o) {
updatedAt();
super.update(o);
}
@PrePersist
void createdAt() {
this.createdAt = this.updatedAt = new Date();
}
@PreUpdate
void updatedAt() {
this.updatedAt = new Date();
}
}
和2个模型
public class Request extents TimeStampable {
@OneToMany(cascade = CascadeType.ALL)
public List<Response> responses = new ArrayList<Response>();
}
public class Response extents TimeStampable {
}
当我尝试保存请求对象时,我看到我的数据库已为请求对象正确填充了 created_at updated_at 字段,但对于响应对象,这些值为空。响应对象的其他字段具有预期值(我已填写)。
这是我保存请求的方式。
Request req = new Request();
Response res = new Response();
// code to populate response fields
request.add(res);
Ebean.save(req);
我在这里想念什么?