使用ebean从数据库中删除最旧的记录



我正在使用Ebean with play framework(v2.3.4)。这是我的模型:

@Entity
public class User extends Model {
  @Id
  private Long id;
  ...
  @OneToMany(cascade = CascadeType.ALL)
  @JoinColumn(referencedColumnName = "id", name = "parentID")
  public List<Notification> notifications = new ArrayList<Notification>();
  private static Finder<Long, User> find = new Finder<>(Long.class, User.class);
}

我需要为每个user限制notifications的数量。有没有一种方法可以自动使用Ebean?

我需要的是,如果单个usernotifications记录数增长到50以上,那么最旧的记录就会被删除(即,超过50的新记录会"替换"最旧记录)

不,这是不可能的,Ebean是一个ORM,所以它没有带来任何逻辑(这就是为什么它应该?)。

相反,您需要在应用程序中使用Akka Scheduler,它将定期为所有用户执行清洁,或者,您也可以在每/n次保存操作时添加这样的裁剪,即在模型中覆盖save()方法。

最新更新