Я полагаю, что вы пытаетесь найти строки из таблицы Entita, которых нет в таблице Publicobjects. Предполагая, что это правильно, вот SQL-запрос для MySQL, чтобы найти его:
SELECT `entita`.*
FROM `entita`
LEFT JOIN `publicobjects` ON (`publicobjects`.`model` = 'entita'
AND `publicobjects`.`model_id` = `entita`.`id`)
WHERE `publicobjects`.`model_id` IS NULL
Чтобы сделать это с моделями CakePHP, нужно сделать пару шагов. Я сделал некоторые предположения относительно названий вашей модели, но могу ошибаться, и их легко исправить.
Сначала добавьте это к модели Entita:
<?php
var $hasOne = array('Publicobject' => array(
'foreignKey' => 'model_id',
'conditions' => 'Publicobject.model = "Entita"'));
Теперь вы можете проверить записи, которые отсутствуют в таблице Publicobjects, например:
<?php
$this->Entita->find('all', array('conditions' => array('Publicobject.model_id IS NULL')));