我正在使用带有播放框架的Ebean(v2.3.4)。这是我的模特:
public function up()
$tableNames = Yii::$app->db->schema->tableNames;
foreach ($tableNames as $tableName) {
Yii::$app->db->createCommand('ALTER TABLE '.$tableName.' ENGINE = InnoDB')->query();
}
}
我需要为每个@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);
}
限制notifications
的数量。有没有办法自动使用Ebean?
我需要的是,如果单个user
的{{1}}个记录数增加到50以上,那么最旧的记录将被删除(即50个以上的新记录'替换'最旧的记录记录)
答案 0 :(得分:1)
不,这是不可能的,Ebean是一个ORM所以它没有带来任何逻辑(这显然是为什么它应该?)。
相反,你需要在你的应用程序中使用ie Akka Scheduler,它会定期为所有用户执行清理,或者你也可以在每个/第n个保存操作中添加这样的 cropping ,即通过覆盖{模型中的{1}}方法。