public function findGetAll($limit = null, $offset = null, $sorting = ['id' => 'asc'], $where = [])
{
// Create basic query
$qb = $this->createQueryBuilder('u')->leftJoin('u.emails', 'emails')->leftJoin('u.phones', 'phones')->leftJoin('u.faxes', 'faxes')->leftJoin('u.contactAddresses', 'contactAddresses')->leftJoin('contactAddresses.address', 'addresses')->leftJoin('u.accountContacts', 'accountContacts')->leftJoin('accountContacts.account', 'account')->leftJoin('u.title', 'title')->addSelect('title')->addSelect('emails')->addSelect('phones')->addSelect('faxes')->addSelect('contactAddresses')->addSelect('addresses');
$qb = $this->addSorting($qb, $sorting, 'u');
$qb = $this->addPagination($qb, $offset, $limit);
// If needed add where statements
if (is_array($where) && count($where) > 0) {
$qb = $this->addWhere($qb, $where, 'u');
}
$query = $qb->getQuery();
return $query->getArrayResult();
}