mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2026-03-03 04:29:40 +00:00
Add findByCriteriaIterator method to AuditTrailRepository for streaming large datasets
- Introduced a memory-efficient iterable result method to handle large datasets. - Ensures data is streamed without loading all rows into memory, improving performance for extensive audit trail processing.
This commit is contained in:
@@ -85,6 +85,21 @@ class AuditTrailRepository extends ServiceEntityRepository
|
||||
->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an iterable result set for streaming over large datasets without loading all rows into memory.
|
||||
*
|
||||
* @param array{subjects?: list<Subject>, from_date?: \DateTimeImmutable, to_date?: \DateTimeImmutable, by_users?: list<User>} $criteria
|
||||
*
|
||||
* @return iterable<AuditTrail>
|
||||
*/
|
||||
public function findByCriteriaIterator(array $criteria): iterable
|
||||
{
|
||||
return $this->buildByCriteriaQuery($criteria)
|
||||
->orderBy('audit.occurredAt', 'DESC')
|
||||
->getQuery()
|
||||
->toIterable();
|
||||
}
|
||||
|
||||
public function deleteBefore(\DateTimeImmutable $date): void
|
||||
{
|
||||
$this->createQueryBuilder('audit')
|
||||
|
||||
Reference in New Issue
Block a user