我想向我的教义模型添加安全层。为了能够在SQL级别的教义过滤器中添加权限检查,我必须维护一些数据库表,其中包含为每个实体计算的访问控制令牌的高速缓存。onFlush事件处理程序中的繁重更新和删除
现在我必须更新这些表,并且在某些情况下我必须完全重建这些缓存表之一。这必须在监听onFlush事件的事件监听器中完成。什么是最好的(最高性能和最可靠)的方式来归档呢?
它记录了如何坚持新实体以及如何改变已存在实体的关联和原始属性。这是通过调用工作单元的computeChangeSet()或者重新计算SingleEntityChangeSet()来完成的,并且通过将每个实体传递给这些方法之一来完成。整个系统在这些更新期间必须锁定,虽然它们很少,但应尽快完成。此外,我不知道如何删除实体,甚至无需先读出所有实体即可截断整个表。
- 如何删除onFlush事件中的实体?
- 如何在onFlush事件中进行批量更新(表格截断并插入数十万条记录)?我想我可以在这种情况下使用$ EntityManager-> getConnection() - > executeUpdate(),对吧?
- 如何在onFlush事件中锁定表(读取)?
谢谢。很高兴知道remove()在onFlush()和DQL以及锁定方法(可能)中也可以工作。 – stofl 2013-03-01 16:45:49