Использование REGEXP в Doctrine 2.x ORM

Я много исследовал этот вопрос и уверен, что ответ отрицательный, но я бы хотел доказать, что ошибался.

Я хочу выполнить запрос, написанный на DQL, который содержит операцию REGEXP. Например:

select * from assets 
where campaign_id = 1
and fileName REGEXP 'godzilla*'
order by fileName desc

aka

$builder->add('select', 'a.fileName')
        ->add('from',    '\Company\Bundle\Entity\Asset a')
        ->add('where',   'a.campaign=1')
        ->...REGEXP MAGIC...
        ->add('orderBy', 'a.fileName desc');

(Это простое регулярное выражение, и я понимаю, что его можно сделать как LIKE, но это всего лишь пример - мое настоящее выражение регулярного выражения более сложное)

Я изучил Доктрину \ ORM \ Query \ Expr, плюс класс QueryBuilder. Я не вижу поддержки REGEXP. У кого-то на SO есть сообщение, в котором говорится, что они использовали класс Expr, но на самом деле это не работает (они заявили, что не тестировались).

Есть идеи, как выполнить REGEXP на DQL без написания прямого SQL? TIA.

5
задан mr-sk 10 January 2012 в 21:20
поделиться