Skip to content

Ru:criteria

AlexeyDsov edited this page Apr 18, 2011 · 28 revisions

(это еще не законченная статья, пожалуйста не надо в нее вставлять куски больших непонятных примеров со всякими вспомогательными классами Debug и т.п. Однако подправка логических ошибок, опечаток и т.д. приветствуется ;))

Criteria - класс, позволяющий получать список бизнес объектов, единичный объект, списки полей полей объектов или производные полей. В отличие от просто OSQL Criteria больше оперирует в условиях не полями таблицы, а именно property'ями объектов.

Основные возможности

Простейшее получение списка всех бизнес-объектов класса MyBook:

<?php
Criteria::create(Actor::dao())->getList();
?>

SQL запрос в базу при этом будет следующий:

SELECT id, name, country, childs, best_film_id FROM actor;

Критерии поддерживают возможность выборки объектов по параметрам. Для этого в критерию через метод add нужно добавить какой-либо LogicalObject. Например необходимо получить всех актеров, живущих в США:

<?php
Criteria::create(Actor::dao())->
	add(Expression::eq('country', DBValue::create('USA')))->
	getList();
?>

Запрос в базу будет иметь вид:

SELECT id, name, country, childs, best_film_id FROM actor WHERE country = 'USA';

Т


Примечания:

  1. Запросы в базу упрощены, из них убраны кавычки и алиасы
  2. Подсмотреть выдуманную мету для объектов из примеров можно здесь. Мета,объекты и структура базы не претендуют на продуманность, а лишь спроектированы таким образом, что бы примеры были наиболее наглядны и просты.
Clone this wiki locally