Первые два соединения (таблица2, таблица3) просты, если я правильно помню. Просто сделайте table1.OBJECT_ID ненужным в вашей схеме, и левое соединение будет использоваться автоматически.
Не сразу уверен насчет операции ИЛИ. Если вы застряли, один из способов сделать это - использовать вышеизложенное в необработанном запросе, а затем «гидрировать» объекты из набора результатов. Другой способ (очень хороший для сложных запросов, которые трудно выразить в ORM) - создать представление базы данных для вышеупомянутого, а затем добавить новую таблицу в вашу схему для представления. Конечно, это немного обманывает, но для некоторых действительно сложных вещей, которые я делал в большом проекте Symfony, это было здорово - и это также сделало отладку запросов очень простой.